【发布时间】:2012-06-30 11:01:05
【问题描述】:
您好,我的controller 中有两个动作check 和display,我在与这些动作对应的视图中有两个视图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... 我认为我的检查方法需要在其中写入一些内容以便将表单提交给display 方法和 url 不包含表单中的参数。
我不能在使用 params 的检查方法中使用参数,因为它们是空的,并且会引发 nil 对象错误
请帮忙
更新:
我使用 :method => 帖子而不是 :method=> 在看到后进入 form_for 标记 how can I hide params I transmit to a method (like form_for seems to do)?
并且它没有在 url 中显示任何参数。 但是现在当我从 display.html.erb(比如 do_something.html.erb)转到另一个视图并单击返回按钮返回到我的 display.html.erb 时,它说网页已过期。
如果我在问这个问题时不清楚,或者我在这里做的事情明显错误,请告诉我..
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3.1 parameter-passing url-parameters