Ruby on rails 同时注册并创建新对象

Ruby on rails 同时注册并创建新对象,ruby-on-rails,ruby,validation,devise,Ruby On Rails,Ruby,Validation,Devise,我是RubyonRails的新手。 我试图用Desive注册一个新用户,同时创建一个新的公司对象。它们之间的关联:用户属于公司。该公司有许多用户。我试着根据这个链接来做,但没有成功。它说:“公司的未定义方法”,即公司没有电子邮件属性。 在注册表单中,我只为用户设置电子邮件属性 <div class="title"><%= t('.signup') %></div> <%= form_for(resource, :as => resource_na

我是RubyonRails的新手。 我试图用Desive注册一个新用户,同时创建一个新的公司对象。它们之间的关联:用户属于公司。该公司有许多用户。我试着根据这个链接来做,但没有成功。它说:“公司的未定义方法”,即公司没有电子邮件属性。 在注册表单中,我只为用户设置电子邮件属性

<div class="title"><%= t('.signup') %></div>

<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
<%= devise_error_messages! %>

<div class="control-group"><%= f.label :email, t('.email') %>
<%= f.email_field :email %></div>

<div class="control-group"><%= f.label :password, t('.password') %>
<%= f.password_field :password %></div>

<div class="control-group"><%= f.label :password_confirmation, t('.password_confirmation') %>
<%= f.password_field :password_confirmation %></div>

<%= f.fields_for :company_attributes do |f_company| %>

<div class="control-group"><%= f_company.label :name, t('.company_name') %>
<%= f_company.text_field :name %></div>

<% end %>

<div class="buttons"><%= f.submit t('.signup'), class:"btn btn-primary" %><br>
<%= render "links" %></div>
<% end %>

如果有任何想法和帮助,我将不胜感激。对于您的情况,请提前感谢

,因为您只对接收公司名称感兴趣,我会简化它,并通过
文本字段标签提交公司名称

换言之,我将取代:


在您的情况下,由于您只对接收公司名称感兴趣,我会简化它并通过
文本字段标记提交公司名称

换言之,我将取代:


你能发布你的控制器代码吗?@Kyle我用两个控制器的代码更新了我的问题你能发布你的控制器代码吗?@Kyle我用两个控制器的代码更新了我的问题
class CompaniesController < Devise::RegistrationsController

def new
  @company = Company.new
  @user = @company.users.build
end

def create
  @company = Company.new(params[:company])
  @user = User.create(params[:user].merge(company_id:company.id))
  if @company.save
   redirect_to "/"
  else
   render 'users/sign_up'
 end
 end
end
  def new
    @user = User.new
  end
  def create
    @user = User.new(params[:user]) 
    if @user.save
      redirect_to users_path
    else
      render 'users/new'
    end
  end
<%= f.fields_for :company_attributes do |f_company| %>

<div class="control-group"><%= f_company.label :name, t('.company_name') %>
<%= f_company.text_field :name %></div>

<% end %>
 def new
    @user = User.new
  end
  def create
    @user = User.create(params[:user]) 
    #Create a company via 'user<->company' association using 'company_name'
    @company= @user.company.create(name: params[:company_name])
    if @user.save
      redirect_to users_path
    else
      render 'users/new'
    end
  end