我创建了一个嵌套表单。我有一个名为contract的模型和另一个名为contract_details的模型。在我的合同控制器中,我有以下代码:
def new
@contract = Contract.new
@contract.customer_id = params[:customer_id]
7.times {
@contract.contract_details.build
@contract.contract_details.del_day = "Sun"
}
end
del_day是我的contract_details模型中的一列,但以下代码行错误:
@contract.contract_details.del_day = "Sun"
我做错了什么?如何从顶层控制器访问嵌套模型中的列。这意味着,在构建合同控制器中的每一行时,如何在contract_details模型中设置列的值?
答案 0 :(得分:0)
当我重新阅读时,如果它是一个数组,你只会做同样的事情7次,所以建议你尝试以下方法:
def new
@contract = Contract.new
@contract.customer_id = params[:customer_id]
7.times {
@new_contract_details = @contract.contract_details.build
@new_contract_details.del_day = "Sun"
}
end
问题在于,当您调用以下行时,没有迹象表明您正在尝试更新哪个'contract_details'对象。
@contract.contract_details.del_day = "Sun"