Используемые элементы: Rails 3.2, Mongoid и devize.Невозможно получить значение от ассоциированной модели в Rails
У меня есть следующие две модели:
class User
include Mongoid::Document
include Mongoid::Timestamps
has_one :profile, autosave: true, dependent: :delete
field :account_level
end
class Profile
include Mongoid::Document
include Mongoid::Timestamps
belongs_to :user
field :display_position
end
Мое приложение устанавливается так, на успешной регистрации учетной записи (пользователя) человек автоматически перенаправлены для создания нового профиля. account_level
определяется автоматически на основе какой-либо другой логики в приложении.
Я хотел бы, чтобы значение display_position
было автоматически заполнено на основе модели account_level
модели пользователя.
Я пробовал различные способы заставить это работать, но я могу понять, как это понять.
Каков наилучший способ достижения этого?
Используйте '' before_save' или before_create' фильтр на вашей модели. –
Я сделал это, но ассоциация создана пока. Когда я пытаюсь запустить 'self.position_order = profile.user.account_level', он выдает ошибку, потому что пока еще не создана ассоциация пользователей с профилем. – sevens
Затем попробуйте фильтр 'after_save' или' after_create'. –