我很难扩展现有模型以包含对单个表的两个引用。
我当前的模型名为Order
,我需要两个引用(payment_state
和delivery_state
)到State
表。
我的理解是我应该运行以下命令:
rails g migration AddStatesToOrder payment_state:references delivery_state:references
但是,在schema.rb
运行rake db:migrate
之后,我的# Could not dump table "orders" because of following NoMethodError
# undefined method `[]' for nil:NilClass
会出现以下行:
{{1}}
非常感谢任何帮助。谢谢!
答案 0 :(得分:1)
你应该这样做:
rails g migration AddStatesToOrder payment_state_id:integer delivery_state_id:integer
在模型中定义这样的关系:
belongs_to :payment_state, class_name: State.model_name
belongs_to :delivery_state, class_name: State.model_name
为什么使用:integer而不是:references?因为你想要做的事情不是“传统的”,它是对同一模型的定制双重关系,而Rails无法为你猜测。