0

Railsの構文に苦労しています。ユーザーとアドレスの1対多の関係を設定しようとしていますが、ユーザーは常にプライマリアドレスを持っています。モデルを機能させることができましたが、フォームを機能させることができたようです。以下のフォームは「新規登録」用ですが、ネストされたアドレスのフィールドは表示されません。

私はこれをハッキングしてきました、そしてそれを得ることができないようです。新規ユーザーを登録しようとしたときにネストされたフォームフィールドが表示されない理由を誰かに説明してもらえますか?

これがフォームです

 <%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => {:class => "form-horizontal"}) do |f| %>
    <small>Mandatory fields marked *</small><br><br>


    <%= f.fields_for :primary_address do |address_form| %>
    <div class="control-group">
        <%= address_form.label :first_name, :class => "control-label" %>
        <div class="controls">
          <%= address_form.text_field :first_name, :class => "input-xlarge" %>
        </div>
      </div>

    <div class="control-group">
        <%= address_form.label :last_name, :class => "control-label" %>
        <div class="controls">
          <%= address_form.text_field :last_name, :class => "input-xlarge" %>
        </div>
      </div>
    <% end %>

これはユーザーモデルです:

class Member::User < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :token_authenticatable, :confirmable,
  # :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable,
  :recoverable, :rememberable, :trackable, :validatable


  # Setup accessible (or protected) attributes for your model
  attr_accessible :email, :password, :password_confirmation, :remember_me, :addresses_attributes

  validates_presence_of :email

  # each user may have zero or many addresses
  # their primary email is also set as their login id.
  has_many :addresses

  has_one :primary_address, :class_name => "Address",  :conditions => "is_primary = true"

  accepts_nested_attributes_for :primary_address

end
4

1 に答える 1

1

次のように新しいprimary_addressを初期化してみてください。

<%= f.fields_for resource.build_primary_address do |address_form| %>
于 2012-09-16T13:55:21.853 に答える