我这里有两个模型:Package
和Status
套餐belongs_to
状态
状态has_many
个套件
因此,我的Package模型有一个status_id
列
在我的Packages控制器中,我有这个方法(从ajax POST调用接收数据):
def edit_status
@status = Status.find_by_name(params[:status])
Package.update(params[:id], :status_id => @status.id)
end
但这很奇怪......我无法让status_id
更新以挽救我的生命。如果我更改了记录中任何其他列的status_id
列(例如from_name
),那么它可以正常工作。
我觉得我在这里服用疯狂的药片,但任何想法为什么这可能不起作用?
答案 0 :(得分:0)
可能存在验证问题。我会做一个“find”然后“update_attributes”,它将返回“false”,让你知道记录是否无效。
答案 1 :(得分:0)
您可能需要在包模型中使用它:
accepts_nested_attributes_for :status, :allow_destroy => true
此处提供更多信息:http://ryandaigle.com/articles/2009/2/1/what-s-new-in-edge-rails-nested-attributes