使用外键双向建模关系



我有两个模型reservationsreviews我可以去预订.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。该字段必须存在,关联才能正常工作。

最新更新