从索引页面添加路由,该页面保留:id param,类似于show?

时间:2013-06-10 22:29:41

标签: ruby-on-rails

这里有初学者问题。我在显示的表中为资源索引添加了另一列,我无法弄清楚如何设置路由,以便在为特定资源对象单击该链接时,它将转到页面:resource / run / id_number (其中run是我添加的链接的名称)。我已经有一个用于运行的视图文件和控制器方法,并且该部分可以工作,所以我必须命名路由以使其以这种方式工作。

我一直在尝试以下形式:匹配'route'到:resource_controller#run

但没有运气。感谢。

1 个答案:

答案 0 :(得分:0)

由于您已经创建了Rails资源,因此您可能希望尽可能地遵循RESTful约定,以便为要路由到控制器的任何其他操作。

最好的方法是创建member块并添加run作为资源:

resources :resource_name do
    member do
        get 'run'
    end
end

这会创建一个这样的路线(来自rake routes):

run_resource_name GET    /resource_names/:id/run(.:format)                   resource_names#run

总的来说,这被认为比resource/run/:id_number这样的路由模式更可取,因为它遵循CRUD路由的惯例。