2017-05-07 85 views
0

我需要用戶能夠創建在用戶註冊一個公司:設計表格創建belongs_to的關聯

class Company < ActiveRecord::Base 
    has_many: :users 
end 

class User < ActiveRecord::Base 
    devise :database_authenticatable, :registerable, 
    :recoverable, :rememberable, :trackable, :validatable, 
    :confirmable 

    belongs_to :company 
end 

與形式:

<%= form_for(resource, as: resource_name, url: registration_path(resource_name), html: { role: 'form' }) do |f| %> 
    <div class="form-group"> 
    <%= f.label :company_name %> 
    **** how to add company name? **** 
    </div> 
    <div class="form-group"> 
    <%= f.label :email %> 
    <%= f.email_field :email, autofocus: true, class: 'form-control' %> 
    </div> 
    <div class="form-group"> 
    <%= f.label :password %> 
    <%= f.password_field :password, class: 'form-control' %> 
    </div> 
    <div class="form-group"> 
    <%= f.label :password_confirmation %> 
    <%= f.password_field :password_confirmation, class: 'form-control' %> 
    </div> 
    <%= f.submit t('.sign_up', default: 'Sign up'), class: 'btn btn-primary' %> 
<% end %> 

我知道以後該怎麼處理表單,我只是不知道如何創建表單。

謝謝!

回答

0

如果你想從組現有母公司的使用: -

<%= f.collection_select(:company_id, Company.all, :id, :name) %> 

如果你想從用戶控制器中創建一個新的公司,只需從PARAMS閱讀並創建一個。

@user = User.new(params[:resource_name]) 
new_company = Company.create(name: params[:resource_name][:company_name]) 
@user.company_id = new_company.id 
@user.save