G
Size: a a a
G
G
w
G
G
w
PP
users
и дочерняя tests
. Нужно в модулях прописать ассоциации создавая имена методов отличные от названий таблиц. В таблице tests
есть колонка внешнего ключа к таблице users
под названием author_id
. Куда мне нужно добавить foreign_key: :author_id
: в класс User
в ассоциацию has_many
или в класс Test
в belongs_to
? Или и туда и туда?
belongs_to :author, class_name: "User"
GB
belongs_to :author, class_name: "User"
foreign_key: :author_id
нужно прописать в классе User
в ассоциацию has_many
, верно?PP
foreign_key: :author_id
нужно прописать в классе User
в ассоциацию has_many
, верно?GB
PP
belongs_to :user, foreign_key: :author_id
, так ассоциация будет доступна как user
. Как я выше сказал, смысл названия колонки не перетёк в метод, а это обычно нехорошо (указывает на разную терминологию в базе и в коде).PP
GB
belongs_to :user, foreign_key: :author_id
, так ассоциация будет доступна как user
. Как я выше сказал, смысл названия колонки не перетёк в метод, а это обычно нехорошо (указывает на разную терминологию в базе и в коде).users
: has_many :author_of_tests, class_name 'Test', inverse_of: :author, foreign_key: :author_id
в tests
: belongs_to :author, class_name 'User', inverse_of: :author_of_tests, foreign_key: :author_id
PP
PP
users
: has_many :author_of_tests, class_name 'Test', inverse_of: :author, foreign_key: :author_id
в tests
: belongs_to :author, class_name 'User', inverse_of: :author_of_tests, foreign_key: :author_id
authored_tests
мб? (Да, author может быть и глаголом!)PP
GB
authored_tests
мб? (Да, author может быть и глаголом!)@user.author_of_tests
чтобы выдало каких тестов он автор.GB
authored_tests
мб? (Да, author может быть и глаголом!)PP
authored_
в целом, или хватит просто tests
(и убрать class_name: "Test"
), но зависит от контекста, да и можно безболезненно поменять – код всё-таки, а не база.GB
authored_
в целом, или хватит просто tests
(и убрать class_name: "Test"
), но зависит от контекста, да и можно безболезненно поменять – код всё-таки, а не база.:tests
, собственно поэтому и делаю новую с другим названием)