0

ユーザー モデルとヘア モデルの 2 つのモデルがあります。ユーザーが自分の名前、ユーザー モデルの場所、ヘア モデルの髪の色を送信して保存できるフォームを作成しました。

私がうまくいかないように見えるのは、ビューでユーザーの髪の色を取得する方法ですか?

髪は現在、ルート内の User のネストされた属性であり、ビューによって表示されている現在の結果はRosie Ealing #<Hair:0x4d5e078>

提供できるヘルプは本当に大歓迎です。

ユーザーモデル

class User < ActiveRecord::Base
  has_one :hair, :dependent => :destroy
  accepts_nested_attributes_for :hair
  attr_accessible :location, :name, :hair_attributes
end

ヘアモデル

class Hair < ActiveRecord::Base
  belongs_to :user
  attr_accessible :color, :user_id
end

ユーザー索引

<% @user.each do |user| %>
    <%= user.name %>
    <%= user.location %>
    <%= user.hair %>
<% end %>

ユーザー モデルの移行

class CreateUsers < ActiveRecord::Migration
  def change
    create_table :users do |t|
      t.string :name
      t.string :location

      t.timestamps
    end
  end
end

ヘア モデルの移行

class CreateHairs < ActiveRecord::Migration
  def change
    create_table :hairs do |t|
      t.string :color
      t.integer :user_id

      t.timestamps
    end
  end
end

ユーザーコントローラー

class UsersController < ApplicationController
  def new
    @user = User.new
    @user.build_hair
  end

  def create
    @user = User.new(params[:user])
        if @user.save
            redirect_to users_path
        else
            render "user/new"
        end
  end

  def index
    @user = User.all
  end
end
4

1 に答える 1

1

これを試して:

<% @user.each do |user| %>
    <%= user.name %>
    <%= user.location %>
    <%= user.hair.color %>
<% end %>

あなたのコードは、それに含まれるデータではなく、オブジェクト Hair へのリンクを返します。

于 2013-03-18T11:59:05.143 に答える