【问题标题】:How can i override a scope route with a named route in rails 3?如何在 rails 3 中使用命名路由覆盖范围路由?
【发布时间】:2011-07-19 15:55:28
【问题描述】:

我有这个范围:

scope ":section", :section => /[a-zA-Z_]+/ do
 resources :case_studies, :promotions, :events
end

网址示例::section/case_studies

我有一个命名范围:

namespace :admin do
 resources :case_studies, :promotions, :events
end

网址示例:admin/case_studies

问题是管理员案例研究、促销和活动将“管理员”命名空间部分注册为部分变量。有没有办法更多地限制范围或让管理员优先于它?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 routing namespaces scope


    【解决方案1】:

    路由在您的 routes.rb 文件中自上而下地执行。如果您确保它们按此顺序排列:

    namespace :admin do
      resources :case_studies, :promotions, :events
    end
    
    scope ":section", :section => /[a-zA-Z_]+/ do
      resources :case_studies, :promotions, :events
    end
    

    那么admin 路由应该优先于你的section 路由。

    【讨论】:

    • 谢谢。那成功了。很奇怪,这是我之前尝试的第一件事,但没有成功,但现在可以了。
    【解决方案2】:

    为了优先考虑,将 admin 命名空间在您的 routes.rb 文件中向上移动

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-25
      • 2014-05-28
      • 2014-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-07
      相关资源
      最近更新 更多