传递参数用于创建和更新模型

时间:2013-05-30 16:11:58

标签: ruby-on-rails ruby ruby-on-rails-3 activerecord

我想知道,是否有更简单的方法来执行以下操作

#controller's action
@my_model = MyModel.create field1: params[:field1],
               field2: params[:field2],
               field3: params[:field3],
               field4: params[:field4]
               # and so on.....

我会用

  @my_model = MyModel.create params

但它是否有效,因为params 始终包含Rails添加的其他键?

P.S。 更新模型的相同问题(这会正常工作吗?)

MyModel.update_attributes params

1 个答案:

答案 0 :(得分:1)

将params作为嵌套哈希发送,如

{:my_model => {:field1 => 'blah', :field2 => 'blah'}, :controller => 'something', :action => 'something_else'}

这样你就可以说

@my_model = MyModel.create params[:my_model]

如果您在创建表单时遵循约定,Rails会自动执行此操作。