Я использую Devise для аутентификации с добавлением двух пользовательских полей = :organization_id
и :username
. Я также создал основу для Организации, которая просто состоит из Имени.
В настоящее время, когда пользователи регистрируются, они могут ввести идентификатор организации (целое число) и имя пользователя (строка).
Пользователи belong_to
организаций и организаций has_many
пользователей.
Вот как выглядят мои модели (я оставил все остальное нетронутым, за исключением файлов в app / views / devise / registrations, чтобы добавить имя_организации и имя пользователя):
# user.rb
class User < ActiveRecord::Base
belongs_to :organization
# Include default devise modules. Others available are:
# :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
# Setup accessible (or protected) attributes for your model
attr_accessible :email, :password, :password_confirmation, :remember_me, :organization_id, :username
end
# organization.rb
class Organization < ActiveRecord::Base
has_many :users
end
Я хотел бы, чтобы организация создавалась автоматически, когда пользователь регистрируется без необходимости указывать идентификатор организации.
Кроме того, в идеале @organization.name
будет точно таким же, как :username
Как бы я поступил так?
Я видел Railscast на вложенных модельных формах , но он создает вопрос внутри формы опроса, и вопросы принадлежат опросу. Мне нужно сделать это наоборот (создать организацию внутри формы пользователя, в которой пользователи будут участвовать в опросе.)
Любая помощь и предложения будут с благодарностью ..