在 Rails 嵌套路由中使用实体名称而不是 ID
Use entity name instead of ID in Rails nested routes
我定义了以下路由:
resources :queues do
resources :jobs
end
但是,URL 将构建为:queues/:queue_id/jobs
。我希望他们像 queues/:queue_name/jobs
一样建造。自定义此行为的位置在哪里?
试试这个,应该做要求:
namespace :queues, :path => "queues/:name" do
resources :jobs
end
根据Rails Guides,
The :param option overrides the default resource identifier :id.
即:
resources :queues, param: :name do
resources :jobs
end
这是你需要的吗?
您可以将队列模型上的 to_param
覆盖为 return queue_name。请注意,这可能会破坏您当前的控制器模型发现。
我定义了以下路由:
resources :queues do
resources :jobs
end
但是,URL 将构建为:queues/:queue_id/jobs
。我希望他们像 queues/:queue_name/jobs
一样建造。自定义此行为的位置在哪里?
试试这个,应该做要求:
namespace :queues, :path => "queues/:name" do
resources :jobs
end
根据Rails Guides,
The :param option overrides the default resource identifier :id.
即:
resources :queues, param: :name do
resources :jobs
end
这是你需要的吗?
您可以将队列模型上的 to_param
覆盖为 return queue_name。请注意,这可能会破坏您当前的控制器模型发现。