Ruby on rails 从URL中删除参数

Ruby on rails 从URL中删除参数,ruby-on-rails,url,parameter-passing,link-to,Ruby On Rails,Url,Parameter Passing,Link To,我在Rails应用程序中有一个指向方法的链接: link_to t('edit'), edit_building_path(@building, :hidden_action => params[:action]) 如何从url中删除隐藏的\u操作? 当前url看起来像: http://localhost:3000/buildings/2/edit?hidden_action=new 我的问题是,我需要知道用户是从哪个页面访问此链接的 在rails helper中,这取决于您 def

我在Rails应用程序中有一个指向方法的链接:

link_to t('edit'), edit_building_path(@building, :hidden_action => params[:action])
如何从url中删除隐藏的\u操作?

当前url看起来像:

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

我的问题是,我需要知道用户是从哪个页面访问此链接的

在rails helper中,这取决于您

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)

如果上述内容对您没有好处,只需

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

这个问题我不清楚。如果不想在URL中使用
hidden_action
param,请不要将其作为参数附加到方法调用中。我需要一个hidden_action参数,以便在控制器中下次使用,然后通过会话传递它。
url = url.chomp("?hidden_action=#{params[:action]}")