如何缩短单个资源丰富的Rails路由?

时间:2013-01-26 01:00:12

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

所以,我在routes.rb中有以下内容:

scope(path_names: { new: "register" }) do
  resources :accounts
end

这可行,因为它会生成/accounts/register路由,但想将其更改为简单地说/register。我知道我可以使用match "/register" => "accounts#new",但我想知道是否有更好的方法来完成此操作,因为这仍然会使/accounts/register路由“打开”。我可以使用{new: "pygmy_puff"}将其重命名为隐藏的内容,但我不相信它是否是正确的方法。

我真的很想做到这一点。

由于

2 个答案:

答案 0 :(得分:1)

就个人而言,我不会冒出额外的路线,并使用额外的匹配声明。期待rails 4,虽然我认为用http方法写得更好:

get "/register" => "accounts#new"

答案 1 :(得分:1)

试试这个:

match "/register" => "accounts#new"
# ...
 scope(path_names: { new: "register" }) do
  resources :accounts, :except => :new
end

按此顺序。