从 URL 中删除一个参数

Remove a parameter from URL

我的 Rails 应用程序中有一个 link_to 方法:

link_to t('edit'), edit_building_path(@building, :hidden_action => params[:action])

如何从 url 中删除 hidden_action?

目前 url 看起来像:

http://localhost:3000/buildings/2/edit?hidden_action=new

我的问题是我需要知道用户从哪个页面访问此 link_to。

在rails帮手,就看你了

def edit_the_building_url(building, you_want_the_params_or_not)
  if you_want_the_params_or_not
    edit_building_path(building, :hidden_action => params[:action])
  else
    edit_building_path(building)
  end
end

然后在你的控制器中

link_to t('edit'), edit_the_building_url(@building, true)

link_to t('edit'), edit_the_building_url(@building, false)

如果以上内容对您没有好处,就

url = url.chomp("?hidden_action=#{params[:action]}")