重新格式化Rails中控制器操作的路由

时间:2015-11-23 09:44:46

标签: ruby-on-rails ruby model-view-controller routes

我正在开发一个rails应用程序。它的呈现控制器名称,动作和ID在URL中,如

localhost:3000/content/video/2-page-item

所以,我希望删除控制器和动作,使用其他名称,如

localhost:3000/video/2-page-item

我使用的控制器是内容,操作是视​​频。我尝试在路线中使用以下代码

match "video" => "content#video", :as => "video", :via => [:get, :post]

我得到以下网址格式

localhost:3000/video?id=2-page-item

是否可以将上述网址格式设为

localhost:3000/video/2-page-item

1 个答案:

答案 0 :(得分:0)

您可以在相对模型中覆盖Rail的to_param方法以生成参数化网址。

我假设您有一个名为内容模型的内容和属性描述的模型。例如,如果您有以下记录

内容ID => 2,description => 'page item'结果将是video / 2-page-item

class Content < ActiveRecord::Base
    def to_param
        [id, description.parameterize].join("-")
    end
end