我可以在没有控制器的情况下输入表格吗?

时间:2018-11-15 23:07:11

标签: ruby-on-rails ruby devise

我正在使用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之外,我还没有找到任何相关文档。我知道宝石可能假设我知道我在做什么,但是我不知道,但要确保我以正确的方式进行操作。

1 个答案:

答案 0 :(得分:0)

您可能希望将电子邮件作为users#updateUsersController操作的参数

只需将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/

向用户添加许多任务