我无法将控制器绑定到创建的管理员面板选项卡。我做错了什么?
routes.rb
match '/admin/pimport', :to => 'spree/admin/pimport#index', :as => :pimport重写/pimport_tab.rb
Deface::Override.new(
:name => "pimport_tab",
:virtual_path => "spree/layouts/admin",
:insert_bottom => "[data-hook='admin_tabs'], #admin_tabs[data-hook]",
:text => '<%= tab :pimport %>'
)控制器/spree/admin/pimport_Controller.rb
module Spree
module Admin
class PimportController < Spree::Admin::BaseController
def index
end
end
end
end我的视图/spree/admin/pimport/index.html.erb为空。
在http://localhost:3000/admin/pimport,我得到了这个错误:
NoMethodError in Spree/admin/pimport#index它显示了
/Users/artemaminov/.rvm/gems/ruby-1.9.3-p194@rails327spree/gems/spree_core-1.1.3/app/views/spree/layouts/admin.html.erb 其中第35行提出:
undefined method `admin_pimport_path' for # ActionDispatch::Routing::RoutesProxy:0x007f88d5aacca0>提取源(第35行前后):
<div id="admin-menu" data-hook>
<ul data-hook="admin_tabs">
<%= render :partial => 'spree/admin/shared/tabs' %>
<%= tab(:promotions, :url => spree.admin_promotions_path) %><%= tab :pimport %>
</ul>
<br class="clear">
</div>发布于 2012-08-14 21:38:47
在routes.rb中应该写:
Spree::Core::Engine.routes.prepend do
match '/admin/pimport', :to => 'admin/pimport#index', :as => :pimport
end或使用命名空间:
Spree::Core::Engine.routes.prepend do
namespace :admin do
match '/pimport', :to => 'pimport#index', :as => :pimport
end
endhttps://stackoverflow.com/questions/11960765
复制相似问题