Rails:引用一个表时创建两个导航属性

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rails:引用一个表时创建两个导航属性相关的知识,希望对你有一定的参考价值。

我正在创建一个名为Routes的表,它只有destination_airport_id和arrival_airport_id。我希望能够引用@ route.destination_airport,但Rails不会创建这些属性。这是我试过的:

  create_table "routes", force: :cascade do |t|
    t.integer "departure_airport_id"
    t.integer "arrival_airport_id"
  end
  create_table "airports", force: :cascade do |t|
    t.string "iata_code"
    t.string "icao_code"
    t.string "international_name"
    t.string "localized_name"
  end
class Airport < ApplicationRecord
    scope :sorted, lambda { order("iata_code ASC") }
    has_many :routes, :foreign_key => :id
end
class Route < ApplicationRecord
    belongs_to :airport, :foreign_key => "arrival_airport_id"
    belongs_to :airport, :foreign_key => "departure_airport_id"
end
答案

试试这个:

class Route < ApplicationRecord
  belongs_to :arrival_airport, class_name: 'Airport'
  belongs_to :departure_airport, class_name: 'Airport'
end

以上是关于Rails:引用一个表时创建两个导航属性的主要内容,如果未能解决你的问题,请参考以下文章

在 Rails 上创建表时需要创建外键吗?

Android App 在片段中创建 ListView 引用时关闭

如何在两个片段之间传递位图? (我正在使用 Android 导航组件)

如何在实体框架模型中使用通用导航属性?

使用SASS for Ruby on Rails时如何使用border-radius属性删除导航栏圆角?

当属性值来自引用表时,应该如何填充实体(bean)对象属性?