在spface覆盖上的狂欢自定义管理选项卡帮助URL

时间:2013-11-01 19:35:43

标签: ruby-on-rails spree deface

我正在spree 2.1上构建一个自定义选项卡,我在我的Deface覆盖上有这个工作正常,但是当我尝试点击我的选项卡已经在这个选项卡上它转到url / admin / admin / places 。所以我需要这个总是去/ admin / places。

找到这个https://codeclimate.com/github/spree/spree/Spree::Admin::NavigationHelper,它说该选项卡接受第一个参数并创建路径admin_places_path。

:insert_after => "[data-hook='admin_tabs']",
:text         => "<%= tab :places, :icon => 'icon-th-large'%>"

我尝试了通常:url param with'admin / places'但得到了相同的结果,并且正在寻找导致我进入codeclimate的标签实现,现在在这里。有人知道如何避免这种情况吗?

1 个答案:

答案 0 :(得分:6)

这就是我解决的问题:

 :text => "<%= tab :places, :icon => 'icon-th-large', url: main_app.admin_places_path %>"

在搜索我的答案时,我发现我的地方路线位于我的app命名空间内,而不是在spree中。

namespace :admin do
  # Directs /admin/products/* to Admin::ProductsController
  # (app/controllers/admin/products_controller.rb)
  resources :places
end

因此,要访问我必须放置“main_app”的路径。在目标路径之前。见这里:Adding Routes to Rails' Spree E-Commerce

查看codeclimate代码我看到url param被设置为destination并可以使用它来放置“main_app”。在路径之前,现在正在工作。

修改

发现它是一种更好的方法。

路线

 Spree::Core::Engine.routes.prepend do
   namespace :admin do
   # Directs /admin/products/* to Admin::ProductsController
   # (app/controllers/admin/products_controller.rb)
   resources :places
   end
 end

将我的所有文件夹(控制器和视图)从控制器/视图&gt;位置移动到控制器/视图&gt; spree&gt; admin&gt;位置

删除了“my_app”。现在它工作得更好更容易。