У меня есть пользователь и модель профиля. Один пользователь может иметь много профилей. Мне нужно получить доступ к одной информации из раздела профилей (а именно номер телефона) в моей модели пользователя во время процесса создания пользователя. Поэтому я пытаюсь сделать это через attr_accessible
. Мой user.rb выглядит так.Вложенные формы в рельсах - доступ к атрибуту в has_many отношении
has_many :profiles
attr_accessible :handle, :email, :password, :profile_mobile_number
attr_accessor : :profile_mobile_number
Проблема, с которой я столкнулся в том, что, когда я пытаюсь вызвать метод геттер profile_mobile_number в способе в user.rb (метод является частным, хотя я думаю, что это не имеет значения), я m получает нулевое значение. Я использую следующие в моей форме пользователи/new.html.erb
Мой вопрос: что это правильный способ сделать это? Должен ли я использовать <% f.fields_for :profile do |ff| -%>
или <% f.fields_for :profiles do |ff| -%>
(обратите внимание, что второй является множественным). Когда я использую множественное число: профили, я даже не вижу поля в форме. Что мне здесь не хватает? И какое время нужно использовать в модели user.rb? : profile_phone_number или: profiles_phone_number? Благодарю.
Как я уже сказал, я использовал профили f.fields_for: и поля в форме не отображались. Оказывается, мне пришлось добавить @ user.profiles.build в контроллер. Но теперь я не могу иметь как attr_accessible, так и accepts_nested_attributes_for в user.rb. Первое перекрывает последнее. Но я хочу иметь attr_accesible для атрибутов модели пользователя, а не ограничивать доступ к атрибутам модели профиля. Есть идеи? Благодарю. –