【问题标题】:Reformating Routes for controller's actions in Rails在 Rails 中为控制器操作重新格式化路由
【发布时间】:2015-11-23 09:44:45
【问题描述】:

我正在开发一个 Rails 应用程序。它在 url 中的渲染控制器名称、动作和 id 类似

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

所以,我希望删除控制器和其他名称的操作,例如

localhost:3000/video/2-page-item

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

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

我得到以下 URL 格式

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

上面的网址格式是否可以获取为

localhost:3000/video/2-page-item

【问题讨论】:

  • 在此处添加您的完整路线代码。至少视频

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


【解决方案1】:

您可以在相关模型中覆盖 Rail 的 to_param to 方法以生成参数化 url。

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

Content id => 2, description => 'page item' 结果将是 video/2-page-item

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

【讨论】:

    【解决方案2】:

    像这样改变路线:-

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-01
      • 2012-06-19
      • 2011-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-11
      相关资源
      最近更新 更多