0

我有两个模型,一个用户模型和一个头发模型。我创建了一个表单,该表单成功地允许用户提交并保存他们的姓名、用户模型中的位置以及头发模型中的头发颜色。

我似乎无法解决的是如何在我的视图中检索用户的头发颜色?

头发目前是我的路线中用户的嵌套属性,视图显示的当前结果是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 回答