use*_*109 5 ruby-on-rails multiple-instances strong-parameters
我有两个问题:
在Rails 3中,您可以使用更新多个记录
Product.update(params[:products].keys, params[:products].values)
Run Code Online (Sandbox Code Playgroud)
你如何使用强参数在Rails 4中做同样的事情?如何同时创建多个记录?您能否通过以下格式的示例详细说明您的解决方案:
params = ActionController::Parameters.new(...)
Product.create!(params.require(...)permit(...)
Run Code Online (Sandbox Code Playgroud)
此外,我的产品模型有一个名为number的列,它等于它们更新的顺序.有没有办法在更新时将计数器值传递给数字?
谢谢.
A53*_*08Y -1
也许您正在考虑使用nested_attributes?那看起来像这样:
params.require(:parent_model).permit(
:id,
child_models_attributes: [
:id,
:parent_model_id,
:child_model_attribute_1,
:child_model_attribute_2
]
)
Run Code Online (Sandbox Code Playgroud)
和
params = {
id: parent_model.id,
child_models_attributes: {
'0' => {
id: child_model_1.id,
parent_model_id: parent_model.id,
child_model_attribute_1: 'value 1',
child_model_attribute_2: 12312
}
}
}
Run Code Online (Sandbox Code Playgroud)
不过,您需要允许父模型使用nested_attributes,如下所示:
class ChildModel < Activerecord::Base
belongs_to :parent_model
end
class ParentModel < Activerecord::Base
has_many :child_models
accepts_nested_attributes_for :child_models
end
Run Code Online (Sandbox Code Playgroud)