【问题标题】:Simple Nested Attribute Association issue Ruby on Rails简单的嵌套属性关联问题 Ruby on Rails
【发布时间】:2013-03-18 11:56:27
【问题描述】:

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

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

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

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 nested-attributes rails-activerecord


    【解决方案1】:

    试试这个:

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

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

    【讨论】:

    • 感谢您的快速回复。不幸的是,我尝试了这个,它给了我错误undefined method 'color' for nil:NilClass - 知道我能做些什么来解决这个问题吗? :)
    • 哈!我是个傻瓜,因为我创建了 5 个没有头发关联的用户(从我试图让关联工作开始)。现在我已经删除了数据库中的这些行,它已经工作了!感谢您的帮助:)
    • @TomPinchen 如果它解决了你的问题,请接受这个答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-03
    • 2011-05-25
    相关资源
    最近更新 更多