我有一些看起来像这样的路线:
match 'hotels/:action(/:id)', :controller => 'hotel', :action => /[a-z]+/i, :id => /[0-9]+/i
我想用类似的东西酒店_不喜欢_路径我的代码中的某处引用了 /hotels/dislike
我怎样才能做到这一点?
来自路线指南 http://guides.rubyonrails.org/routing.html#naming-routes:
3.6 命名路由
您可以使用 :as 选项为任何路由指定名称。
match 'exit' => 'sessions#destroy', :as => :logout
所以,就你而言,那就是:
match 'hotels/:action(/:id)', :controller => 'hotel', :action => /[a-z]+/i, :id => /[0-9]+/i
match 'hotels/dislike(/:id)', :controller => 'hotel', :id => /[0-9]+/i, :as => :hotels_dislike
match 'hotels/like(/:id)', :controller => 'hotel', :id => /[0-9]+/i, :as => :hotels_like
我认为没有一种方法可以动态地执行此操作(因此基本上,您必须为每个操作定义一条路线)。但是,您可以为最常用的操作定义几个路由(如上),然后使用hotels_path :action => :really_like
用于更多不常见的操作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)