[英]Ruby on rails parameters are appearing in the url
嗨我有两个动作check
并display
在我的controller
,我有两个视图check.html.erb
和display.html.erb
在视图对应的那些操作。 check方法在其视图中有一个表单这是check.html.erb
<%= form_for :display_command_list, :method => "get", :url => {:action => "display"} do |f| %>
<%= f.label :username %>
<%= f.text_field :username %><br />
<%= f.label :password %>
<%= f.password_field (:password) %><br />
<%= f.submit "Submit"%>
<% end%>
以下是两个行动:
def check
end
def display
#some code here
respond_to do |format|
format.html
end
end
当我在检查视图中填写表单时,它会向表单提交显示操作,并显示操作重定向到显示视图。 但问题是/display.html.erb将表单中提交的所有参数都包含在它的网址中 - /display?%username%=myname
...我认为我的检查方法需要写入其中的内容以便表单提交给display方法,url不包含表单中的参数。 我不能使用params中的参数使用params,因为它们是空的,它会抛出一个nil对象错误请帮忙
更新:
我使用了:method => post而不是:method =>在看到如何隐藏我传输给方法的params之后得到form_for标签(就像form_for似乎那样)?
并且它不会在url中显示任何参数。 但是现在当我从display.html.erb(比如do_something.html.erb)转到另一个视图并点击后退按钮返回我的display.html.erb时,它说网页已过期。
如果我不明白在问这个问题或者我是否做了明显错误的事情,请告诉我。
你为什么不喜欢在url中使用参数? 这是标准做法。 无论如何,您应该使用POST并面对浏览器行为的一些问题(例如,如您所述返回页面或按住Ctrl-R-ing页面)或使用GET并在网址中包含所有参数。 这就是HTTP的工作原理。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.