我有两个模型reservations
和reviews
我可以去预订.review并在案例中获得正确的输出。但是,当我去查看时,保留我没有得到同样的尊重,我得到的关系错误StatementInvalid
。
评论模型:
belongs_to :reservation, :foreign_key => :reservation_id, class_name: 'Reservation'
belongs_to :reviser
has_one :reviser
has_one :reservation
belongs_to :user
预订模式:
has_one :review, :dependent => :destroy
关于reviews
模型的一些注意事项。你有这一行:
belongs_to :reservation, :foreign_key => :reservation_id, class_name: 'Reservation'
但是由于您要将外键命名为reservation_id
,这是 rails 默认命名外键的原因,您可以简单地删除该部分并说:
belongs_to :reservation
其次,我不完全确定你为什么有has_one :reservation
,因为你已经有了belongs_to :reservation
.我可能会删除has_one :reservation
行,除非您绝对确定它应该在那里。
因此,您的新reviews
模型将如下所示:
belongs_to :reservation
belongs_to :reviser
has_one :reviser
belongs_to :user
我会仔细检查您的schema.rb
文件,以确保您在reviews
表中具有字段reservation_id
。该字段必须存在,关联才能正常工作。