0

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

#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 添加的其他键?

PS 更新模型的相同问题(这会正常工作吗?)

MyModel.update_attributes params
4

1 回答 1

1

将参数作为嵌套哈希发送,例如

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

这样你就可以说

@my_model = MyModel.create params[:my_model]

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

于 2013-05-30T16:22:23.857 回答