1 人以上のユーザーを持つことができる最上位のアカウントを実装しようとしています。私のアプリは認証に Devise を使用しているため、サインアップ フォームを User モデルの一部として保持したいと考えています。
モデルは正しく設定されていると思いますが、登録フォームがどのように機能するかを理解するのに苦労しています。
これが私がこれまでに持っているものです...
ユーザー.rb
class User < ActiveRecord::Base
rolify
# Include default devise modules. Others available are:
# :token_authenticatable, :confirmable,
# :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable,
:validatable, :omniauthable
# Setup accessible (or protected) attributes for your model
attr_accessible :role_ids, :as => :admin
attr_accessible :name, :email, :password, :password_confirmation, :remember_me, :account, :company
# Association with service accounts
has_many :service_accounts
# Association with company account
belongs_to :account
end
Account.rb
class Account < ActiveRecord::Base
attr_accessible :company
# Association with users
has_many :users, :dependent => :destroy
end
登録/new.html.erb
<h2>Sign up</h2>
<%= simple_form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => {:class => 'form-vertical' }) do |f| %>
<%= f.error_notification %>
<%= f.input :name, :autofocus => true, :placeholder => "Name" %>
<%= f.input :email, :placeholder => "Email Address" %>
<%= f.input :password, :placeholder => "Password" %>
<%= f.input :password_confirmation, :placeholder => "Confirm Password" %>
<%= f.button :submit, 'Sign up', :class => 'btn btn-large btn-primary' %>
<% end %>
<%= render "devise/shared/links" %>
これが私がいくつかの助けを借りることができるものです
上記の登録フォームに「会社」フィールドを追加したいと考えています。Company は Account テーブルの列です。新しいユーザーが登録したら、そのユーザー用に新しいアカウントを作成し、company フィールドで提供されたものに company 属性を設定したいと思います。
フォーム (会社フィールドを追加するため) とコントローラー (ユーザーがフォームを送信したときに新しいアカウントを作成し、会社フィールドを更新するため) の両方に必要なコードに問題があります。
ありがとう!