ユーザーのサインアップにポリモーフィックアソシエーションを使用するフォームに問題がありました。ポリモーフィックアソシエーションの複数のモデルのフィールドを表示したいのですが、表示できません。
モデルクラス:
class User < ActiveRecord::Base
  devise ...
  belongs_to :userable, :polymorphic => true
end
class Advisor < ActiveRecord::Base
  has_one :user, :as => :userable
  attr_accessible :extra
  accepts_nested_attributes_for :user # Idon't know if it is ok
end
class AnotherKingOfUser < ActiveRecord::Base
  #the same..
end
特定のユーザータイプごとにコントローラーを作成したいので、次のようにします。
class AdvisorsController < ApplicationController
  # GET /advisors/new
  # GET /advisors/new.json
  def new
    # Here is where I'm not sure about what I did. I tried all variants buy any works for me.
    @advisor = Advisor.new
    @advisor.build_user
    respond_to do |format|
      format.html # new.html.erb
      format.json { render json: @advisor }
    end
  end
end
そして私の見解:
<%= form_for(@advisor) do |f| %>
  <% if @advisor.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@advisor.errors.count, "error") %> prohibited this advisor from being saved:</h2>
      <ul>
      <% @advisor.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
  <% end %>
 <% #f.fields_for :user do |ff| %>
 <% f.fields_for :user_attributes, @advisor.user||User.new do |ff| %>
    <div class="field">
      <%= ff.label :email %><br />
      <%= ff.text_field :email %>
    </div>
    <div class="field">
      <%= ff.label :password %><br />
      <%= ff.text_field :password %>
    </div>
  <% end %>
  <div class="field">
    <%= f.label :bio %><br />
    <%= f.text_field :bio %>
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>
したがって、私のブラウザでは「bio」フィールドのみが表示されますが、ユーザーモデル(Devise)の拡張フィールドは表示されません。