def admin_options_for_registrar(registrar)
if registrar.enrollment_application != nil && registrar.enrollment_application.status == "Complete"
["Show", "/registrars/"+registrar.id.to_s],["Edit", "/edit_registrars/"+registrar.id.to_s], ["Dashboard", "/homes/"+registrar.enrollment_application.id.to_s], ]
else
["Show", "/registrars/"+registrar.id.to_s],["Edit", "/edit_registrars/"+registrar.id.to_s], ["Dashboard", "/homes/"+registrar.enrollment_application.id.to_s], ]
end
end我在模型文件中写的这个帮助器方法,现在我在视图文件中这样调用这个方法
<% if xyx!= nil? %>
<td><%= select_tag "options", options_for_select([admin_option_for_registrar])
<% end %> 这应该会给我编辑,显示和仪表板的下拉列表,但它给我错误未定义的mentod‘admin_options_for_registrar’
有什么帮助吗??
发布于 2011-03-01 00:03:53
帮助器方法应该放在“app/helpers”中的帮助器文件中,而不是模型文件中。
正如所写的,听起来您已经为您的模型创建了一个实例方法,您正试图在没有实例的情况下调用该方法。
更新
该函数本身还有许多其他问题:
]return关键字<代码>H111你的函数接受一个参数(<代码>D12),但是你没有在<代码>H213<代码>H114中传递函数的结果,通过调用[]将函数的结果封闭在一个附加的数组中
尝试执行以下操作,然后重新添加分支逻辑:
def admin_options_for_registrar(registrar)
[
["Show", "/registrars/"+registrar.id.to_s],
["Edit", "/edit_registrars/"+registrar.id.to_s],
["Dashboard", "/homes/"+registrar.enrollment_application.id.to_s]
]
end
# pass the registrar object into your function
<%= select_tag "options", options_for_select(admin_option_for_registrar(registrar))https://stackoverflow.com/questions/5144283
复制相似问题