我正在使用Devise-multi-email gem,以允许使用与一个帐户关联的多封电子邮件。
我的问题:我想创建多个电子邮件来与1个帐户相关联,但不确定是否需要控制器,或者不确定如何使用该控制器来输入表格并将其与用户相关联。< / p>
问题:如何在没有控制器且仅模型的情况下输入表格?还是我应该做不同的事情?
这可能是基本的,但是我想确保我将以正确的方式解决这个问题。
宝石:https://github.com/allenwq/devise-multi_email
我将gem放入我的应用中,创建了电子邮件模型:
belong_to :user
它与用户ID正确关联,并且具有主布尔
和用户模型:
has_many :emails
devise :multi_email_authenticatable, :registerable,
:confirmable, :recoverable, :rememberable, :validatable
我创建了一个新帐户,该帐户已保存,电子邮件已保存到电子邮件表中并与用户表正确关联,等等。
现在,我要允许用户添加电子邮件,并且要确保我做的正确。
我应该为电子邮件创建一个控制器吗?还是可以在没有控制器的情况下输入多封电子邮件?
我应该在用户下嵌套电子邮件,创建控制器等吗?
再次,很抱歉,如果这是一个毫无问题的问题,但是除了gem之外,我还没有找到任何相关文档。我知道宝石可能假设我知道我在做什么,但是我不知道,但要确保我以正确的方式进行操作。
答案 0 :(得分:0)
您可能希望将电子邮件作为users#update
中UsersController
操作的参数
只需将accepts_nested_attributes_for :emails
添加到您的用户模型中,就可以通过{ user: { id: 1, email_attributes: [{ email: 'alice@example.com }, { email: 'alice@work.com'}] } }
进行更新
有关嵌套属性的更多信息,请在https://api.rubyonrails.org/classes/ActiveRecord/NestedAttributes/ClassMethods.html
中查看文档。这也是一个示例,说明如何使用此方法https://www.sitepoint.com/complex-rails-forms-with-nested-attributes/
向用户添加许多任务