【问题标题】:Spree custom admin tab helper url on deface override在污损覆盖上狂欢自定义管理选项卡帮助程序 url
【发布时间】:2013-11-01 19:35:42
【问题描述】:

我正在 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'%>"

我尝试了通常使用 'admin/places' 的 :url 参数,但得到了相同的结果,并且正在寻找导致我进入 codeclimate 的选项卡实现,现在在这里。有谁知道如何避免这种情况?

【问题讨论】:

    标签: ruby-on-rails spree deface


    【解决方案1】:

    我就是这样解决的:

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

    搜索我的答案时,我发现我的地点路线在我的应用命名空间内,而不是在狂欢中。

    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 参数被设置为目标,可以使用它来放置“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
    

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-11
      • 1970-01-01
      • 1970-01-01
      • 2016-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多