0

私は BikeShops モデルを持っています:

class BikeShop < ActiveRecord::Base
    has_one :user, :as => :profile, :dependent => :destroy
    accepts_nested_attributes_for :user
end

そしてユーザーモデル:

class User < ActiveRecord::Base
    belongs_to :profile, :polymorphic => true
end

bike_shops/new ビューでネストされたフォームを作成しようとしています。私が持っているコードは次のとおりです。

<%= form_for(@bike_shop) do |f| %>
        <%= render 'shared/error_messages', object: f.object %>
        <%= f.label :name, 'Shop Name' %>
        <%= f.text_field :name %>

        <%= f.label :street_address, 'Street Address' %>
        <%= f.text_field :street_address %>

        <%= f.label :city, 'City' %>
        <%= f.text_field :city %>

        <%= f.label :state, 'State' %>
        <%= f.text_field :state %>

        <%= f.label :zip_code, 'Zip Code' %>
        <%= f.text_field :zip_code %>

        <%= f.label :phone_number, 'Phone Number' %>
        <%= f.text_field :phone_number %>

        <%= f.label :website, 'Website' %>
        <%= f.text_field :website %>

        <% f.fields_for(:user) do |builder| %>

            <%= builder.label :first_name, 'First Name:' %>
            <%= builder.text_field :first_name %>

            <%= builder.label :last_name, 'Last Name:' %>
            <%= builder.text_field :last_name %>

            <%= builder.label :email, 'Email:' %>
            <%= builder.text_field :email %>

            <%= builder.label :password, 'Password:' %>
            <%= builder.password_field :password %>

            <%= builder.label :password_confirmation, 'Password Confirmation:' %>
            <%= builder.password_field :password_confirmation %>
        <% end %>

        <%= f.submit "Signup My Bike Shop", class: "btn btn-large btn-primary" %>
    <% end %>

@bike_shop のフィールドは表示されますが、has_one @user のネストされたフィールドは表示されません。BikeShops コントローラーのコードは次のとおりです。

class BikeShopsController < ApplicationController
  def new
    @bike_shop = BikeShop.new
    @user = @bike_shop.build_user
  end 

このRailscastをフォローしていましたが、ネストされたフォームを表示するためのフィールドを取得できません。どんな助けでも大歓迎です。

4

1 に答える 1

1

<%=単に表示するのではなく、表示するには erb タグを使用する必要があります。<%

<%= f.fields_for(:user) do |builder| %>
于 2013-08-17T21:24:22.300 に答える