Ruby on rails 关于辅助方法?
这个助手方法是我在模型文件中编写的 现在我以这种方式在视图文件中调用此方法Ruby on rails 关于辅助方法?,ruby-on-rails,Ruby On Rails,这个助手方法是我在模型文件中编写的 现在我以这种方式在视图文件中调用此方法 def admin_options_for_registrar(registrar) if registrar.enrollment_application != nil && registrar.enrollment_application.status == "Complete" ["Show", "/registrars/"+registrar.id.to_s],["Edit", "/e
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
助手方法应该放在“app/helpers”的助手文件中,而不是放在模型文件中
如前所述,听起来您已经为您的模型创建了一个实例方法,您试图在没有实例的情况下调用它
更新
函数本身还有许多其他问题:
- 函数中似乎有语法错误,if的两个分支上都有额外的
]
- if的两个分支是相同的;为什么要有一个if呢
- 你的函数没有返回任何东西;您需要
return
关键字
- 您的函数接受一个参数(
register
),但您没有传入一个参数
- 通过使用
[]
尝试使以下各项正常工作,然后将分支逻辑添加回:
<% if xyx!= nil? %>
<td><%= select_tag "options", options_for_select([admin_option_for_registrar])
<% end %>
注册器(注册器)的def管理选项
[
[“Show”、“/registrators/”+registrator.id.to_],
[“编辑”、“/Edit\u registrators/”+registrator.id.to\u s],
[“Dashboard”、“/homes/”+registrator.registration\u application.id.to\u s]
]
结束
#将注册器对象传递到函数中
我转到了帮助文件,但现在它不再显示下拉列表,而是在下拉列表中显示“option_for_Registrator”,而不再显示编辑、显示和仪表板等选项
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))