在Rails中路由别名

Vic*_*tor 61 ruby-on-rails

我在Rails 3中有一个模型故事.

我想打一个别名"书"的"故事"这样我就可以有途径/books/192,而不是/stories/192,而且我所有生成的链接(例如的link_to)指向书的路线,而不是故事路线.

我怎样才能做到这一点?

谢谢

Rya*_*yan 115

resources :stories, :path => :books

如果要重命名路径AND辅助方法,则执行以下操作:

resources :stories, :path => :books, :as => :books

请参阅:覆盖指定的助手

  • 感谢您澄清`:path`和`:as`之间的区别 (2认同)

Rya*_*igg 97

这就是为什么他们作出path的选择match,其也可在resources:

resources :stories, :path => "books"
Run Code Online (Sandbox Code Playgroud)

  • 我相信Ryan Bigg是对的.但是,OP的问题存在轻微的模糊性.当您说资源的别名时,通常意味着该资源可通过多个路由获得.因此,如果您希望通过"/ stories"和"/ books"提供"故事资源",那么宣布这样的事情也是可能的:资源:故事,:as =>:书籍资源:书籍,:控制器=>"故事"因此,"你的应用程序的用户"通过两条不同的路线("/ books","/ stories")获得相同的资源(故事). (6认同)
  • 我知道它很旧,但我真的不明白这是如何回答这个问题的。我不能让它做任何事情。对我来说,它只是修改了辅助方法。 (2认同)