нужен совет.
Я делаю проект на RoR, и не уверен, какие отношения между моделями я должен использовать. У меня есть три модели - пользователи, доски и сообщения.
Начало довольно простое:
У пользователя есть одна стена, и она принадлежит пользователю, поэтому я думаю, это должно быть:
class User < ActiveRecord::Base
has_one :board
end
class Board < ActiveRecord::Base
belongs_to :user
end
Последняя модель - «Сообщения», и тут возникает моя проблема. Сообщение принадлежит пользователю, потому что он пишет, но оно также принадлежит стене, потому что он пишет его на стене (и это может быть стена, принадлежащая другому пользователю).
Я использовал простое решение:
class Theme < ActiveRecord::Base
belongs_to :board
belongs_to :user
end
class User < ActiveRecord::Base
has_one :board
has_many :themes
end
class Board < ActiveRecord::Base
belongs_to :user
has_many :themes
end
Но меня это не устраивает, и я чувствую, что оно не идеально. Я ищу решение, которое позволит мне написать, думает, как:
user.themes.create(:board => @board)
(теперь он не заполняет поле user_id)
Надеюсь, это не сложная задача для тех, кто более опытен, чем я, в модели Ruby on Rails. Буду признателен за хорошие советы, спасибо.