我有一个问题 Controller 和一个关联的模型以及一些休息路线。以下是它在 routes.rb 中的设置方式:
resources :questions
我想添加一个格式为/questions/widget/ID 的自定义路由(其中 ID 是我要为其生成小部件的问题的 ID)。我希望这由我的问题 Controller 中的“小部件”操作处理。我尝试了很多事情,例如:
resources :questions do
member do
get 'widget/:id'
end
end
但没有任何效果。我确定我错过了一些简单的东西。有任何想法吗?提前致谢。
最佳答案
您不必指定 ID,因为您在资源中。它应该看起来像:
resources :questions do
member do
get 'widget'
end
end
您可以从 Rails Guide 获得更多信息.请参阅第 2.9.1 节。
编辑:我刚刚注意到您正在尝试匹配 get/questions/widget/:id。这将为 get/questions/:id/widget 设置一个路由。这更符合 Rails 的惯例。如果你真的想要另一种方式,你需要设置一个自定义匹配语句:
match "/questions/widget/:id" => "questions#widget"
但是,我会坚持惯例。
关于ruby-on-rails - 带参数的rails自定义休息路线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13183769/