无法更新附加了关联的属性

时间:2010-10-01 22:17:57

标签: ruby-on-rails associations

我这里有两个模型:PackageStatus

套餐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),那么它可以正常工作。

我觉得我在这里服用疯狂的药片,但任何想法为什么这可能不起作用?

2 个答案:

答案 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