Ruby on rails 如何简化这条铁路的路线
所以我想手动路由到一个控制器函数,但对几个资源使用相同的方法Ruby on rails 如何简化这条铁路的路线,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,所以我想手动路由到一个控制器函数,但对几个资源使用相同的方法 get "A/:id/f" => "a#f", :constraints=>lamba {|req| (something) } get "B/:id/f" => "b#f", :constraints=>lamba {|req| (something) } get "C/:id/f" => "c#f", :constraints=>lamba {|req| (something) } 有更简单的
get "A/:id/f" => "a#f", :constraints=>lamba {|req| (something) }
get "B/:id/f" => "b#f", :constraints=>lamba {|req| (something) }
get "C/:id/f" => "c#f", :constraints=>lamba {|req| (something) }
有更简单的方法吗?在app/constraints中创建一个如下所示的类
class SomeConstraint
def matches?(request)
# (something)
end
end
并修改路线
constraints(SomeConstraint.new) do
get "A/:id/f" => "a#f"
get "B/:id/f" => "b#f"
get "C/:id/f" => "c#f"
end
您需要观察的是以资源为中心的结构,以及的使用。具体来说,这将如何使您的路线更加干燥
您可以这样(简单地)实现您的结果:
--
为了使代码保持干爽,您可能希望使用以下关注点:
#config/routes.rb
concern :your_items do
get :f, constraints: lamba {|req| (something) }
end
resources :a, :b, :c, concerns: :your_items #-> this might have to be split into separate "resources" declarations
#config/routes.rb
concern :your_items do
get :f, constraints: lamba {|req| (something) }
end
resources :a, :b, :c, concerns: :your_items #-> this might have to be split into separate "resources" declarations