Можно ли вводить данные в таблицу без контроллера? - PullRequest
0 голосов
/ 16 ноября 2018

Я использую гем Devise-multi-email, чтобы разрешить использование нескольких писем, связанных с 1 учетной записью.

Моя проблема: я ищу создание нескольких электронных писем для связи с 1 учетной записью, но не уверен, нужен ли контроллер или как я могу обойтись без него, чтобы ввести таблицу и связать ее с пользователем.

Вопрос: как можно вводить в таблицу без контроллера и только модели? или я должен делать это по-другому?

Это, вероятно, рудиментарно, но я хочу убедиться, что собираюсь решить эту проблему правильным образом.

драгоценный камень: https://github.com/allenwq/devise-multi_email

Я положил камень в свое приложение, создал модель электронной почты:

belong_to :user

Он правильно связывается с идентификатором пользователя и имеет основной логический

и модель пользователя:

has_many :emails

devise :multi_email_authenticatable, :registerable,
          :confirmable, :recoverable, :rememberable, :validatable

Я создаю новую учетную запись, учетная запись сохраняется, электронная почта сохраняется в таблицы электронной почты, правильно связывается с таблицей пользователей и т. Д.

Теперь я хочу разрешить пользователю добавлять электронную почту, и я хочу убедиться, что я делаю это правильно.

Должен ли я создавать контроллер для электронной почты - или есть способ ввода нескольких электронных писем без контроллера?

Должен ли я вкладывать электронные письма под пользователями, создавать контроллеры и т. Д .?

Опять же, извините, если это не простой вопрос, но я не нашел никакой документации по этому вопросу, кроме жемчужины. Я знаю, что драгоценный камень, вероятно, предполагает, что я знаю, что я делаю, но я не знаю и хочу убедиться, что я поступаю правильно.

1 Ответ

0 голосов
/ 16 ноября 2018

Вы, вероятно, хотите принять электронные письма в качестве параметров для действия 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/

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