Formtastic嵌套表单字段不构建has_one关联?

时间:2011-08-23 16:47:20

标签: ruby-on-rails-3 activerecord formtastic

鉴于可能是艺术家的用户:

class User < ActiveRecord::Base
  has_one :artist
end

我有一个用户&amp;艺术家嵌套形式(使用Formtastic gem):

<h1>Artist registration</h1>

<% @user.build_artist unless @user.artist %>

<%= semantic_form_for @user, :url => create_artist_path do |f| %>
  <%= f.inputs :username %>

  <%= f.semantic_fields_for :artist do |a| %>
    <%= a.input :bio %>
  <% end %>

  <%= f.buttons do %>
    <%= f.commit_button 'Register as Artist' %>
  <% end %>
<% end %>

问题是:艺术家字段未呈现。

我也试过f.inputs :for => :artist do |a|

出于某种原因,使用@user.build_artist不会在表单中显示艺术家的字段。如果我尝试@user.artist = Artist.new我收到错误,因为它试图保存艺术家并且验证失败。

我应该如何初始化Artist模型,以便以嵌套的形式获得formtastic生成器的好处? (请注意,@user此处不是:new_record?

1 个答案:

答案 0 :(得分:3)

您还记得在user.rb中设置accepts_nested_attributes_for :artist吗?