发布请求后访问URL中的旧get参数

时间:2019-01-04 16:44:49

标签: ruby-on-rails

我在RoR中有一个带有控制器动作的表单,该动作通过get参数查找记录。

def respond 
  if request.post? 
    # Submit logic here...

    # cannot lookup this way to fill the form out again 
    # @current_message = Saved_message.find_by_id(params[:msg_id])
  elsif request.get? 
    @current_message = Saved_message.find_by_id(params[:msg_id])
  end
end

我不能使用params[:msg_id]再次查找消息,因为它是一个发布请求,并且我不重新发送get参数。但是,get参数保留在URL中,例如.../messages/respond?msg_id=2。我可以通过传入具有不同参数名称(例如<%= form.hidden_field :msg_id_2, value: params[:msg_id] %>)的隐藏字段来解决此问题。然后,我可以通过@current_message查找params[:msg_id_2]。但是,我不喜欢这种解决方案。有什么建议来访问现在无法访问的get参数?

1 个答案:

答案 0 :(得分:1)

您应该使用RESTful路由,这样就不必关心此类问题。

由于您没有过多地介绍实际要解决的代码或问题,因此我可以假设这里可能是什么问题以及如何解决。