5

所以这是场景:

用户:

has_one :company
accepts_nested_attributes_for :company

控制器:

@user = User.new
@user.build_company

看法:

<% 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 %>

在网上搜索之后,这似乎应该可以工作。但是,我得到的只是用户输入。“semantic_fields_for :company”块根本不输出任何东西......

我在这里遗漏了什么,或者这可能是与 Formtastic 相关的 Rails 3 错误?

4

2 回答 2

4

您需要将"<%= %>"与 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 %>
于 2010-06-13T22:28:54.957 回答
0

至于 rails3 新语法,在你的控制器中你应该使用

@user.company.build

代替

@user.build_company

于 2010-06-14T13:05:46.253 回答