RESTful路由添加新的post方法

时间:2011-09-27 11:42:59

标签: ruby-on-rails post routes

我的路线文件看起来就像这个新的宁静后期行动:

resources :projects do
       post 'addpartner'
end

在我看来:

<%= link_to '[Add]', project_addpartner_url(@project,partner) ,
    confirm: 'Are you sure?',
    method: :post %>

现在问题是project_addpartner_url生成具有默认格式的路径。对于我的情况,它是这样的:

/projects/1/addpartner.16

但我期望的格式是:

/projects/1/addpartner/16 

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:1)

在我看来,你的链接被设置为GET方法,这就是你得到的原因

/projects/1/addpartner.16

但你想要的方式似乎是GET

/projects/1/addpartner/16

因此,请尝试将链接更改为

<%= link_to '[Add]', project_addpartner_url(@project,partner) ,
    confirm: 'Are you sure?',
    method: :get %>

但通常添加/更新/删除应该是POST方法。

答案 1 :(得分:1)

尝试使用其他路线,例如:

resources :projects do
 member do
  post 'addpartner'
 end
end

或者,也许:

resources :projects do
 collection do
  post 'addpartner'
 end
end