嗨,我有两个动作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 在它的 url 中提交了表单中的所有参数 - /display?%username%=myname
...我认为我的 check 方法需要在其中写入一些内容,以便将表单提交给 display 方法和url 不包含表单中的参数。我不能在使用 params 的 check 方法中使用参数,因为它们是空的,并且会引发 nil object 错误请帮助
更新:
在看到如何隐藏传递给方法的参数后,我使用了 :method => post 而不是 :method=> 进入 form_for 标记 (就像 form_for 似乎一样)?
并且它没有在 url 中显示任何参数。但是现在当我从 display.html.erb(比如 do_something.html.erb)转到另一个视图并单击后退按钮返回到我的 display.html.erb 时,它说网页已过期。
如果我在问这个问题时不清楚,或者我在这里做的事情明显错误,请告诉我。