2011-02-28 115 views
0
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'

任何帮助?

回答

1

辅助方法应该放在'app/helpers'的助手文件中,而不是在模型文件中。

正如所写,听起来您已经为您的模型创建了一个实例方法,而您正试图在没有实例的情况下调用该方法。

更新

还有很多其他的问题,本身的功能:

  • 看来你在你的函数有一个语法错误,有多余]的您如果
  • 的两个分支
  • 你的两个分支是否相同;为什么有一个如果根本?
  • 你的函数没有返回任何东西;你需要的return关键字
  • 你的函数需要一个参数(registrar),但你无法通过调用它withing []

尝试通过一个在

  • 你包围函数的结果在addtional阵列得到以下的工作,然后添加分支逻辑回:

    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)) 
    
  • +0

    我搬进来帮手文件,但现在不是显示下拉它只是表明我“option_for_registrar”在下降而不是向下像编辑选项,表演和仪表板 – user588324 2011-02-28 16:11:29