ruby-on-rails - 带参数的rails自定义休息路线

标签 ruby-on-rails ruby-on-rails-3

我有一个问题 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/

相关文章:

ruby-on-rails - 从 collection_check_boxes 中移除外部标签

ruby-on-rails - 有什么理由不在 Heroku 上使用 RAILS_ENV=staging 吗?

ruby-on-rails - Rails 的一个数据库条目的三个文本字段

javascript - 如何在不使用 Rails 助手的情况下实现 'safe' 周期执行器?

ruby-on-rails-3 - 选项卡内分页

ruby-on-rails - Mina 部署 rvm_path

ruby-on-rails - 未显示部分渲染

Rails 3.1 Asset Pipeline 中的 Javascript 文件

ruby-on-rails - 本地 PostgreSQL 和 Heroku PostgreSQL 版本

ruby-on-rails - 安装 Rails : "File not found: lib" On Windows 7