Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Ruby on Rails上的简单嵌套属性关联问题_Ruby On Rails_Ruby On Rails 3_Nested Attributes_Rails Activerecord - Fatal编程技术网

Ruby on rails Ruby on Rails上的简单嵌套属性关联问题

Ruby on rails Ruby on Rails上的简单嵌套属性关联问题,ruby-on-rails,ruby-on-rails-3,nested-attributes,rails-activerecord,Ruby On Rails,Ruby On Rails 3,Nested Attributes,Rails Activerecord,我有两个模型,一个用户模型和一个头发模型。我已经创建了一个表单,它成功地允许用户提交并保存他们的姓名、在用户模型中的位置以及在头发模型中的头发颜色 我似乎无法解决的是如何在我的视图中检索用户的头发颜色 “头发”当前是“我的路线”中用户的嵌套属性,视图显示的当前结果是Rosie Ealing 任何能提供的帮助都将不胜感激 用户模型 class User < ActiveRecord::Base has_one :hair, :dependent => :destroy acce

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

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

“头发”当前是“我的路线”中用户的嵌套属性,视图显示的当前结果是
Rosie Ealing

任何能提供的帮助都将不胜感激

用户模型

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
class用户:destroy
接受\u嵌套的\u属性\u:hair
属性可访问:位置、名称、头发属性
结束
头发模型

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
class Hair
用户索引

<% @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 CreateUsers
头发模型移植

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 CreateHairs
用户控制器

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
class UsersController
试试这个:

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


您的代码将返回指向对象头发的链接,而不是其中包含的数据。

感谢您的快速回复。不幸的是,我尝试了这个方法,它给了我一个错误
对于nil:NilClass的未定义方法“color”
-知道我能做些什么来解决这个问题吗?:)哈我是个傻瓜,因为我创建了5个用户,但没有头发关联(从我试图让关联工作时开始)。现在我已经删除了数据库中的这些行,它已经工作了!谢谢你的帮助:)@TomPinchen如果这个答案解决了你的问题,请接受。