我正在使用Rails 4.2.3。我想有我管理登錄頁面上的標籤菜單,所以我增加了以下我的應用程序/控制器/ 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
以下是我在我的應用程序/視圖/管理/指數.html.erb文件...
<h1>Admin#index</h1>
<ul>
<%= menu_builder(@page_id) %>
</ul>
然而,當我訪問我的/管理/索引頁,我得到這個錯誤
undefined method `menu_builder' for #<#<Class:0x007f861bfe9900>:0x007f861bff36f8>
我要去哪裏錯了?
方法來創建視圖llers實際上是動作,所以你無法在控制器中定義一個傳遞參數的方法。你需要一個'menu_builder(page_id)'助手' –