Ruby on rails 如何实现控制器以处理一个或多个记录的创建?
我正在使用RubyonRails4.1。我有一个嵌套的模型,在它的控制器中,我希望在提交一个或多个记录时执行RESTful创建操作来处理这些情况。也就是说,我的控制器创建操作是:Ruby on rails 如何实现控制器以处理一个或多个记录的创建?,ruby-on-rails,ruby,ruby-on-rails-4,controller,save,Ruby On Rails,Ruby,Ruby On Rails 4,Controller,Save,我正在使用RubyonRails4.1。我有一个嵌套的模型,在它的控制器中,我希望在提交一个或多个记录时执行RESTful创建操作来处理这些情况。也就是说,我的控制器创建操作是: def create @nester = Nester.find(:nester_id) @nesters_nested_objects = @nester.nested_objects.build(create_params) if @nnesters_ested_objects.save #
def create
@nester = Nester.find(:nester_id)
@nesters_nested_objects = @nester.nested_objects.build(create_params)
if @nnesters_ested_objects.save
# ...
else
# ...
end
end
def create_params
params.require(:nesters_nested_object).permit(:attr_one, :attr_two, :attr_three)
end
我希望它能够处理参数包含与一个对象相关的数据和包含与多个对象相关的数据这两种情况
我怎样才能做到?我应该实现一个新的控制器操作,可能称为create_multiple还是什么?处理这些案件有一种常见的做法?好吧,如果你坚持在他们的巢穴之外创建这些记录,我可以建议这样做,最好是单独使用一种方法:
def create_multiple
@nest = Nester.find(params[:nester])
params[:nested_objects].each do |item|
@nest.nested.new(item.permit(:attr_one, :attr_two, :attr_three))
end
if @nest.save
....
else
....
end
end
我相信通常的做法是创建嵌套记录以及父记录,其中包含accepts_nested_attributes_for.@Almaron-在我的情况下,该操作旨在用于公共API,我可以/不愿意使用accepts_nested_attributes_for,然后,我想您可以从params获取一个数组,并通过它进行写入。@Almaron-我应该实现一个新的控制器操作,可能称为create_multiple还是什么?