Добавление нескольких электронных писем в модель пользователя - PullRequest
0 голосов
/ 26 августа 2011

Я хочу добавить несколько электронных писем в модель пользователя при использовании devise, используя отношение has_many. Это немного расширяет этот вопрос: Как я могу настроить Devise для Ruby on Rails для хранения электронной почты и паролей где-то, кроме как в пользовательской модели?

User.rb has_many: электронные письма

Email.rb принадлежат: пользователь

В моей новой / редактируемой форме для устройства, как мне настроить fields_for xxx.email. Я вижу, что страница регистрации от devise использует "ресурс". Когда я пробую следующий код, он просто пропускает поле электронной почты.

= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| 
  = devise_error_messages! 
  %table{:style=>"width:400px;"}
    -fields_for resource.email do |emails|
      %tr 
        %td
          = emails.label :email
        %td
          = emails.email_field :email
  %tr
    %td
      = f.label :password ...
  %tr
    %td
      = f.label :firstname ....

Кроме того, кому вы изменяете действия в контроллере для устройства?

В этом случае весь блок электронной почты не появляется.

Спасибо

1 Ответ

0 голосов
/ 26 августа 2011

Помощнику fields_for нужны данные для создания полей. С новыми записями обычно требуется, чтобы вы сделали что-то вроде resource.email<strong>s</strong>.build, чтобы создать первую запись для показа.

А также, я думаю, вы должны использовать fields_for(resource.emails) do |email|.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...