我想在使用设计时使用has_many关系向用户模型添加多个电子邮件。这是这个问题的一个扩展:How can I configure Devise for Ruby on Rails to store the emails and passwords somewhere other than in the user model?
User.rb has_many:电子邮件
Email.rb belongs_to:user
在我的新/编辑表单中,如何设置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 ....
另外,你是谁修改控制器中的动作设计?
在这种情况下,整个电子邮件块都不会出现。
由于
答案 0 :(得分:0)
帮助器fields_for
需要一些数据来创建字段。对于新记录,通常需要执行resource.emails.build
之类的操作来创建要显示的第一条记录。
而且,我认为你应该使用fields_for(resource.emails) do |email|
。