class Feature < ActiveRecord::Base
belongs_to :agency_feature
...
end
class Agency < ActiveRecord::Base
has_many :agency_features, dependent: :destroy
...
end
class AgencyFeature < ActiveRecord::Base
belongs_to :agency
has_one :feature
end
Схема
create_table "agency_features", force: true do |t|
t.integer "agency_id"
t.integer "feature_id"
t.boolean "enabled"
end
add_index "agency_features", ["agency_id"], name: "index_agency_features_on_agency_id", using: :btree
add_index "agency_features", ["feature_id"], name: "index_agency_features_on_feature_id", using: :btree
Проблема
Agency.first.agency_feature
дает мне:
<AgencyFeature id: 508, agency_id: 1, feature_id: 1, enabled: false>
и Agency.first.agency_features.first.agency
возвращает правильное агентство.
Проблема заключается в том Agency.first.agency_features.first.feature
дает столбца не существует ошибки и пытается искать "agency_feature_id"
внутри функций.
Как мне найти функцию с идентификатором, который соответствует атрибуту «feature_id» внутри AgencyFeature?
Я хотел бы сделать это с текущими отношениями, которые должны быть has_one, например [this] (http://guides.rubyonrails.org/association_basics.html#the-has-one-association) – Blinky
I ' Я не уверен, что я следую. С 'has_one: feature', вам нужно будет иметь столбец' agency_feature_id' в таблицах 'features'. Я не думаю, что это то, что вам нужно. Мне кажется, что у вас есть общая таблица соединений, как описано [здесь] (http://guides.rubyonrails.org/association_basics.html#the-has-many-through-association) – Magnuss