Rails:基于对象属性的路径路径

时间:2014-01-05 10:14:59

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

这是我的路线

resources :programs

我的模特是计划 它有一个属性类型,可以等于“movie”或“tv_show”。

  • type = Movie
  • type =电视节目

我想如果一个节目是电影,那么网址将是:

http://example.com/movie/12

,否则

http://example.com/tv_show/12

这可能吗?

我发现了这个,但我不知道如何制作动态(按对象的属性切换)

resources :programs, path: 'tv_show'

我想避免编辑每个program_url(p),我正在寻找一种聪明的方法使用routes.rb

1 个答案:

答案 0 :(得分:3)

Rails polymorphic_path可能有帮助。

movie = Movie.find(12)
polymorphic_path([movie]) #will give http://example.com/movie/12
tv_show = TvShow.find(12)
polymorphic_path([tv_show]) #will give http://example.com/tv_show/12

您可以在rails控制台中尝试此操作

  

app.polymorphic_path([电影])