【发布时间】:2012-03-24 20:41:58
【问题描述】:
我是 Rails 新手,在创建嵌套表单时遇到了一些麻烦。
我的模型:
class User < ActiveRecord::Base
belongs_to :company
accepts_nested_attributes_for :company, :reject_if => :all_blank
end
class Company < ActiveRecord::Base
has_many :users
end
现在我想通过仅给定公司名称从用户注册页面(我使用 Devise,BTW)创建一个新公司。并在新用户和新公司之间建立关系。
在控制台中,我可以像这样为现有用户创建公司:
@company = User.first.build_company(:name => "name of company")
@company.save
这行得通,但我无法为新用户做到这一点。在我的新用户注册表单中,我尝试了这个(我知道首先创建一个新用户是错误的,但我正试图让一些东西在这里工作。)
<%= simple_form_for(resource, :as => resource_name, :html => { :class => 'form-horizontal' }, :url => registration_path(resource_name)) do |f| %>
<%= f.error_notification %>
<div class="inputs">
<%
@user = User.new
company = @user.build_company()
%>
<% f.fields_for company do |builder| %>
<%= builder.input :name, :required => true, :autofocus => true %>
<% end %>
<%= f.input :email, :required => true, :autofocus => true %>
<%= f.input :password, :required => true %>
<%= f.input :password_confirmation, :required => true %>
</div>
<div class="form-actions">
<%= f.button :submit, :class => 'btn-primary', :value => 'Sign up' %>
</div>
我已尽力向 Google 寻求解决方案/示例。我发现了一些嵌套 形成示例,但我不清楚如何执行此操作。
【问题讨论】:
-
你遇到了什么错误?
-
我没有收到错误,只是表单中没有“公司名称”文本字段..
标签: ruby-on-rails devise nested-forms