我的integer
对象表格中Parent
名为completion_status
,默认值为0
。我喜欢将其设置为与"@parent.child.count('completion', :distinct => true)"
相同的值,但我不知道如何在控制器中执行此操作,或者即使控制器是执行此操作的最佳位置。
我知道这里没有太多信息,但如果我遗漏了一些重要信息,请告诉我。我在这里有一个大脑放屁的时刻。
编辑:刚试过:
def set_completion
@app = App.find(params[:id])
@app.update_attribute(:completion_status => @app.elements.count('completion', :distinct => true))
end
答案 0 :(得分:2)
根据我的理解,每次创建新孩子时,此值都可能会发生变化,因为创建新子项会更改@parent.child.count
的值,因此您希望每次创建时都重置completion_status
或更新一个新的孩子,所以一种方法是在ChildrenController
的创建和更新操作中 - 假设你有一个:
def create
@parent = Parent.find(params[:parent_id]
@child = @parent.children.build(child_params)
if @child.save
@parent.completion_status = @parent.children.count // this is the line to add
end
end
这段代码可以用不同的方式进行改进,但我只是给你一个例子。