在保存之前,控制器是否有任何方法可以从视图中的表单中获取值?

时间:2010-06-03 18:40:04

标签: ruby-on-rails

我认为必须将值传递回控制器以供使用,但我尝试过的所有内容似乎只能获取已经保存在数据库中的值。

1 个答案:

答案 0 :(得分:2)

提交表单时,控制器将始终可以访问名为“params”的哈希,该哈希将包含所有提交的数据。

例如,如果您的表单包含名为“foo”的文本框

<input type="text" name="foo" />

可以使用

在控制器中检索该值
fooValue = params[:foo]

您可以使用它来构建模型的新实例,其中包含表单中提交的值,如下所示:

在您的表单中:

<% form_for :person, @person, :url => { :action => "create" } do |f| %>
  <%= f.text_field :first_name %>
  <%= f.text_field :last_name %>
  <%= submit_tag 'Create' %>
<% end %>

然后,在你的控制器中:

@newPerson = Person.new(params[:person]; #this will pass the whole group of values within that person form to the "new" method