Ruby on Rails - 为什么没有填充我的关联对象 ID?



在我的Rails应用程序中,我有两个模型,EstimateClient,它们都与Statebelongs_to关系(如在美国各州)。

如果我像这样创建一个简单的散列:

properties = {:state => State.first}

…我可以像这样在Rails控制台中构建一个客户端:

c = Client.new(properties)

…并且它显示state_id1,如预期的那样。

然而,如果我尝试同样的估算,像这样:

e = Estimate.new(properties)

它从不设置state_id ,所以我不能保存关联。

EstimateClient的表具有相同的state_id列(int 11)。联系是一样的。State对象也一样

是什么导致了这种差异?

更新

这个问题是attr_accessible正如Misha指出的。我们发现的另一个症状是Estimate.state = State.first返回NoMethodError: undefined method state=

您是否在Estimate模型中设置了attr_accessible ?如果是这样,state可能无法访问,只能这样设置:

e = Estimate.new
e.state = State.first

更新

注意state=是一个实例方法,而不是一个类方法。

这个工作:

Estimate.state = State.first

This does work:

e = Estimate.new
e.state = State.first

相关内容

  • 没有找到相关文章

最新更新