【发布时间】:2016-05-12 12:26:08
【问题描述】:
我使用的是 Rails 4.2.3。我想在我的管理员登录页面上有一个选项卡式菜单,所以我将以下内容添加到我的 app/controllers/admin_controller.rb 文件中……
class AdminController < ApplicationController
before_filter :must_be_admin, only: :index
def index
@page_id = "index"
end
def menu_builder(page_id)
tabs = ['Current Hacks','Add New Hack','Approve Hacks']
content = ""
tabs.each do |tab|
content << if page_id == tab
content_tag('li', content_tag('a', tab, :href => nil ), :class => 'current') + " "
else
content_tag('li', content_tag('a', tab, :href => "/#{tab}" )) + " "
end
end
content
end
这是我的 app/views/admin/index.html.erb 文件中的内容……
<h1>Admin#index</h1>
<ul>
<%= menu_builder(@page_id) %>
</ul>
但是,当我访问我的 /admin/index 页面时,我收到了这个错误
undefined method `menu_builder' for #<#<Class:0x007f861bfe9900>:0x007f861bff36f8>
我哪里错了?
【问题讨论】:
-
控制器中定义的方法实际上是动作,因此您无法在控制器中定义传递参数的方法。你需要
menu_builder(page_id)的助手
标签: ruby-on-rails ruby-on-rails-4 methods controller