2013-09-18 2 views
0

У меня есть две модели, User и Accountпроверки атрибутов из разных моделей на одной форме

  • Accounts модель подтверждает наличие имени и организации
  • User модель подтверждает наличие электронной почты и пароль

У меня есть одна форма для создания учетной записи, которая объединяет две модели: имя_файла и организацию от Account, адрес электронной почты и пароль от User.

Как проверить все модели при создании учетной записи?

+0

Опубликуйте некоторый код, чтобы ответы могли быть более конкретными для вашего случая. – Matt

ответ

0

Вы можете абсолютно точно проверить обе модели, как показано ниже, чтобы вы начали работу, но найдите любые команды, которые вы не узнаете, чтобы получить дополнительную помощь.

Сначала связать свои модели и позволяет вложенные атрибуты с валидациями для ребенка:

class User < ActiveRecord::Base 
    has_one :account 
    accepts_nested_attributes_for :account 
    validates_associated :account 
end 

class Account < ActiveRecord::Base 
    belongs_to :user 
end 

Теперь используйте fields_for помощник, чтобы определить свою форму:

<% form_for @user do |form| %> 
    <%= form.input :email %> 
    <% form.fields_for :account do |account_fields| %> 
    <%= account_fields.input :organization %> 
    <% end %> 
    <%= form.submit %> 
<% end %> 

Теперь в контроллере при обновлении атрибуты @user атрибуты учетной записи будут автоматически обновляться с помощью параметров учетной записи. Затем, когда родитель проверяется, так будут и дети.

Смежные вопросы