【发布时间】:2016-06-13 21:04:29
【问题描述】:
我有 4 个模型,我有一个非常重要的原因来更新所有模型(可能在单独的操作中,但在 1 个操作中,如果可能的话)。
如果我想更新 1 个模型,我可以使用
def update
@modelA = ModelA.find(params[:id]
respond_to do |format|
if @modelA.update(modelA_params)
format.html { redirect_to :back, notice: "" }
format.json { head :no_content }
else
format.json { render json: @modelA.errors, status: :unprocessable_entity }
format.html { render :show }
end
end
end
带有适当的参数。如果我有配置页面并且我想更新 4 个模型(当然是分开的),我将如何更改它?每个模型都有 4 列,我想从模型中更新每列的适当属性。就我而言,我使用x-editable gem 来更新属性。
问题是……有什么破解方法吗?像批量更新 案例条件还是我应该为每个模型创建更新操作 更新它们?(在 configuration_controller 中)
【问题讨论】:
-
当然你可以在同一个表单中收集属于不同模型的不同参数。然后在单个控制器操作(#create 或 #update)中更新 4 个不同的模型。这不是什么特别的技巧,它是控制器从任何模型调用任何记录的能力..您可以使用嵌套表单。或者只是不加区别地收集,然后在控制器操作中手动分配。
-
根据这些模型是否相关,您也许可以使用nested attributes。
-
您好,我面临着类似的情况,我的模型不相关,但我希望通过一个操作来更新它们,您能说一下您是如何解决的吗? @Skrpter
标签: ruby-on-rails ruby ruby-on-rails-4