首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Spree管理面板中的自定义选项卡

在Spree管理面板中的自定义选项卡
EN

Stack Overflow用户
提问于 2012-08-14 21:08:46
回答 1查看 3.6K关注 0票数 3

我无法将控制器绑定到创建的管理员面板选项卡。我做错了什么?

routes.rb

代码语言:javascript
复制
match '/admin/pimport', :to => 'spree/admin/pimport#index', :as => :pimport

重写/pimport_tab.rb

代码语言:javascript
复制
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

代码语言:javascript
复制
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,我得到了这个错误:

代码语言:javascript
复制
NoMethodError in Spree/admin/pimport#index

它显示了

代码语言:javascript
复制
/Users/artemaminov/.rvm/gems/ruby-1.9.3-p194@rails327spree/gems/spree_core-1.1.3/app/views/spree/layouts/admin.html.erb 

其中第35行提出:

代码语言:javascript
复制
undefined method `admin_pimport_path' for #  ActionDispatch::Routing::RoutesProxy:0x007f88d5aacca0>

提取源(第35行前后):

代码语言:javascript
复制
<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>
EN

回答 1

Stack Overflow用户

发布于 2012-08-14 21:38:47

在routes.rb中应该写:

代码语言:javascript
复制
Spree::Core::Engine.routes.prepend do
  match '/admin/pimport', :to => 'admin/pimport#index', :as => :pimport
end

或使用命名空间:

代码语言:javascript
复制
Spree::Core::Engine.routes.prepend do
  namespace :admin do
    match '/pimport', :to => 'pimport#index', :as => :pimport
  end
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11960765

复制
相关文章

相似问题

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