我在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参数?
答案 0 :(得分:1)
您应该使用RESTful路由,这样就不必关心此类问题。
由于您没有过多地介绍实际要解决的代码或问题,因此我可以假设这里可能是什么问题以及如何解决。