【发布时间】:2015-08-13 15:50:19
【问题描述】:
在一个视图中,我有以下格式的链接:
<%= link_to "User", move_on_path(organization: organization, url: edit_profile_path(@user)) %>
这使用一个控制器方法,该方法首先调用一个设置session值的方法,然后移动到指定的url:
def move_on
@organization = Organization.find_by(params[:organization])
set_session(@organization)
redirect_to params[:url]
end
这可行,但现在我有一个url,其方法是post,而不是get。当它是post 方法时,我不知道链接的语法。所以我有下面的语法,但需要post 到edit_profile_path。我如何在下面的语法中指定它(或者没有办法为此更改 def move_on)?
<%= link_to "User", move_on_path(organization: organization, url: edit_profile_path(@user)) %>
更新:使用下面的@Chuck Callebs 答案,我已将控制器方法更改为:
def move_on
@organization = Organization.find_by(params[:organization])
set_session(@organization)
if params[:_url] == 'users#edit'
post_to params[:url]
else
redirect_to params[:url]
end
这是正确的吗?我编造了post_to 来解释我想要它做什么,但是将它发布到url 的正确代码是什么?
我不认为这是一个重复的帖子,因为它更多的是在这个用例中寻找解决方案,而不是关于 post 请求是否可能。
【问题讨论】:
-
你为什么首先使用 POST?
-
对于上面编辑用户配置文件的示例,它确实没有意义,但我也有链接,例如删除用户在组织中的角色。那就是我使用发布请求的地方。
标签: ruby-on-rails ruby ruby-on-rails-4