我正在使用Ruby on Rails 4.1。我有一个"嵌套"模型和在其控制器中我想做RESTful create
动作来处理提交一个或多个记录的情况。也就是说,我的控制器create
操作是:
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
我希望在params
包含与一个对象相关的数据以及何时包含与多个对象相关的数据时处理这两种情况。
我该怎么做?我应该实现一个新的控制器动作(可能称为create_multiple
)还是什么?处理这些案件有一种常见的做法吗?
答案 0 :(得分:0)
好吧,如果你坚持在他们的巢穴之外创建那些记录,我可以建议用这样的东西(最好是一个单独的方法):
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