У меня есть две модели:Как изменить поведение Rails belongs_to
class Sentence < ActiveRecord::Base
attr_accessible :sentence_id, :authority_name #...
end
class Rule < ActiveRecord::Base
attr_accessible :description, :headline, :note, :sentence_id
end
Я хотел бы знать, как создать belongs_to :sentence
ассоциацию на Rule
, который будет вести себя как этот псевдо-SQL кода:
SELECT * FROM rules
INNER JOIN sentences ON rules.sentence_id = sentences.sentence_id;
Edit:
Я хотел бы получить что-то вроде этого
rule = Rule.find 797
# we all know how SQL query will look like...
rule.sentence
# => SELECT * FROM sentences
INNER JOIN rules ON rules.sentence_id = sentences.sentence_id
WHERE rules.id = 797
Является ли здесь уловкой, что вы хотите получить все правила, принадлежащие какому-либо предложению (т. Е. Существуют некоторые правила, в которых предложение_предложение равно null)? Если каждое правило принадлежит предложению, почему основные 'has_many: rules' для модели Sentence и' belongs_to: sentence' для модели Rule не достигают того, что вы хотите? –
Добавил больше информации на вопрос. :) –
Мне кажется, что базовая настройка ассоциации выполнит то, что вы ищете. Что это за тот подход, которого нет? –