首页 > 解决方案 > 发布请求后访问 URL 中的旧获取参数

问题描述

我在 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 参数保留在 url 中,例如.../messages/respond?msg_id=2. 我可以通过传入一个具有不同参数名称的隐藏字段来解决这个问题,例如<%= form.hidden_field :msg_id_2, value: params[:msg_id] %>. 然后我可以@current_message通过params[:msg_id_2]. 但是,我不喜欢这种解决方案。有什么建议可以访问现在无法访问的 get 参数吗?

标签: ruby-on-rails

解决方案


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

由于您没有发布太多关于您要解决的实际代码或问题的信息,我可以假设这里可能存在什么问题以及如何解决它。


推荐阅读