格式嵌套的表单字段没有建立has_one关联



给定一个可能成为艺术家的用户:

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 ?

最新更新