繁体   English   中英

Ruby on rails参数出现在url中

[英]Ruby on rails parameters are appearing in the url

嗨我有两个动作checkdisplay在我的controller ,我有两个视图check.html.erbdisplay.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM