首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于帮助器方法?

关于帮助器方法?
EN

Stack Overflow用户
提问于 2011-02-28 23:58:12
回答 1查看 49关注 0票数 0
代码语言:javascript
复制
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

我在模型文件中写的这个帮助器方法,现在我在视图文件中这样调用这个方法

代码语言:javascript
复制
<% if xyx!= nil? %>
<td><%= select_tag "options", options_for_select([admin_option_for_registrar])
<% end %> 

这应该会给我编辑,显示和仪表板的下拉列表,但它给我错误未定义的mentod‘admin_options_for_registrar’

有什么帮助吗??

EN

回答 1

Stack Overflow用户

发布于 2011-03-01 00:03:53

帮助器方法应该放在“app/helpers”中的帮助器文件中,而不是模型文件中。

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

更新

该函数本身还有许多其他问题:

  • 看起来你的函数有一个语法错误,if的两个分支上都有多余的]
  • if的两个分支是相同的;为什么要有if?
  • 你的函数没有返回任何东西;你需要return关键字

<代码>H111你的函数接受一个参数(<代码>D12),但是你没有在<代码>H213<代码>H114中传递函数的结果,通过调用[]将函数的结果封闭在一个附加的数组中

尝试执行以下操作,然后重新添加分支逻辑:

代码语言:javascript
复制
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))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5144283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档