Ruby on rails Formtastic嵌套模型表单字段(Rails 3)
下面是一个场景: 用户:Ruby on rails Formtastic嵌套模型表单字段(Rails 3),ruby-on-rails,ruby-on-rails-3,formtastic,Ruby On Rails,Ruby On Rails 3,Formtastic,下面是一个场景: 用户: has_one :company accepts_nested_attributes_for :company 控制器: @user = User.new @user.build_company 视图: register|u path do|form|%> 用户信息 公司信息 在浏览完网络之后,这似乎应该会起作用。然而,我得到的只是用户的输入。“语义字段:company”块根本不输出任何内容 我是否在这里遗漏了什么,或者这可能是与Formtastic有关的Rail
has_one :company
accepts_nested_attributes_for :company
控制器:
@user = User.new
@user.build_company
视图:
register|u path do|form|%>
用户信息
公司信息
在浏览完网络之后,这似乎应该会起作用。然而,我得到的只是用户的输入。“语义字段:company”块根本不输出任何内容
我是否在这里遗漏了什么,或者这可能是与Formtastic有关的Rails 3 bug?您需要对Rails 3块使用“,而不是”。因此,守则应为:
<%= semantic_form_for @user, :url => register_path do |form| %>
<h2>User Information</h2>
<%= form.inputs %>
<h2>Company Information</h2>
<%= form.semantic_fields_for :company do |company| %>
<%= company.inputs %>
<% end %>
<%= form.buttons %>
<% end %>
register|u path do|form|%>
用户信息
公司信息
至于rails3的新语法,您应该在控制器中使用
@user.company.build
而不是
@user.build\u company
缺少一个字符。。。一定会喜欢的:哦,太谢谢你了!我花了一个多小时找这个。在铁路上测试了它。它是有效的,这是我写的一个控制器的例子:def new@realty=realty.new@realty.ownerships.build(:person\u id=>params[:person\u id])respond\u to do | format | format.html#new.html.erb end end end。build方法肯定被删除了。它对你有效,因为你的@realty拥有很多所有权。如果它有一个(比如OP),您需要使用@realty.build\u ownership
<%= semantic_form_for @user, :url => register_path do |form| %>
<h2>User Information</h2>
<%= form.inputs %>
<h2>Company Information</h2>
<%= form.semantic_fields_for :company do |company| %>
<%= company.inputs %>
<% end %>
<%= form.buttons %>
<% end %>