У меня есть модель, которую я не знаю, как сосредоточиться на следующий вопрос:Rails лучший способ (или лучшие практики)
Я читал следующие сообщения
- before_create in rails model
- before_create in user model -- set integer based on email (RAILS)
- Access current_user in model
у меня есть проект, где я хочу для управления некоторыми свойствами (Активы). У меня есть собственность, владелец, компания и пользователи.
Дом и Владелец связаны в БД с FK, поэтому у 1 компании есть N Владельцев, и у 1 Компании есть свойства N.
Модель Пользователь связан с компанией, поэтому 1 компания имеет пользователей N.
Как я могу получить доступ к company_id
в модели Пользователи, чтобы сохранить этот идентификатор в свойствах и в модели владельца, когда созданы Property и Владелец?
Должен ли я сделать это в контроллере и модели?
Владелец Класс
class Owner < ApplicationRecord
acts_as_paranoid
has_many :property_owners
has_many :properties, :through => :property_owners
belongs_to :company
belongs_to :country
accepts_nested_attributes_for :properties
недвижимости класса
class Property < ApplicationRecord
acts_as_paranoid
has_many :property_owners has_many :owners, :through =>
:property_owners
belongs_to :company belongs_to :country
Это компания
Class Company < ApplicationRecord
has_many :properties
has_many :owners
И последний из пользователей
class User < ApplicationRecord
devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable
before_create :set_default_role, only: :create
belongs_to :country
belongs_to :company
belongs_to :user_role
accepts_nested_attributes_for :company
Если компания имеет много пользователей, дома и владельцы, эти три все должны иметь company_id поле. Итак, где проблема, я не понимаю –
Да, у всех у них есть company_id, я хочу хранить company_id в Доме и Владельце, где он связан с Пользователем. Когда пользователь создает новый дом или новый владелец, я хочу добавить этот идентификатор (company_id) –
. Я бы сказал, что его очень неясно, о чем вы спрашиваете, и вы просто просто сбиты с толку и не имеете четкой модели домена. Вы, скорее всего, ищете 'has_one through:' и 'has_many через:' ассоциации. Если вы действительно можете включить свои модели и немного о фактическом проблемном домене, который вы пытаетесь решить (это, например, приложение для недвижимости или то, что вы пытаетесь построить?), Тогда этот вопрос может быть подотчетен. Сейчас он, скорее всего, будет похоронен или закрыт. – max