给定一个可能成为艺术家的用户:
class User < ActiveRecord::Base
has_one :artist
end
我有一个用户&艺术家嵌套形式(使用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 %>
问题是:artist字段没有呈现。
我也试过f.inputs :for => :artist do |a|
。
由于某些原因,使用@user.build_artist
不会在表单中显示艺术家的字段。如果我尝试@user.artist = Artist.new
,我得到一个错误,因为它试图保存艺术家和验证失败。
我应该如何初始化艺术家模型,以便在嵌套表单中获得格式生成器的好处?(注意这里的@user
不是:new_record?
)
您是否记得在user.rb中设置accepts_nested_attributes_for :artist
?