Rails - 使用嵌套路由重命名URL中的模型ID

时间:2018-01-20 16:40:41

标签: ruby-on-rails ruby

我有一个嵌套路由,我通过在模型中定义to_param函数,重新定义了URL的ID部分,以包含名称(如:永久链接)而不是ID号。这在访问第一个模型时工作正常,但是当访问第二个模型时,它将恢复使用URL中的模型ID。它是功能性的,但是我想在URL中保持一致。

我的路线设置如下:

resources :coins do
  resources :questions
end

目前,URL的格式为:

coins/:id/questions/:id

我希望它的形式如下:

coins/:permalink/questions/:id

模型:

class Coin < ApplicationRecord
    validates :link_name, :currency_name, presence: true
    has_many :questions

    def to_param
        "#{permalink}"
    end
end

我如何重新定义问题路由以便能够执行此操作?

1 个答案:

答案 0 :(得分:0)

resources :coins, :param => :permalink do
  resources :questions
end