0

Rails 新手,我已阅读关联手册并试图找到为什么我的关联不起作用的答案。

我选择将 Profile 与用户分开,以便于关联到不同的用户类型和功能——我将为每种类型的用户提供 3-4 个不同的模型。

我有:

使用称为 Temper Dashboard View 的设计配置文件模型的用户模型

如果我试图从仪表板上的 Profile 模型中为当前用户调用信息,如果我正确阅读指南,则下面的代码“应该”工作。

错误是:

enter code hereundefined method `temp_phone_n' for #<User:0x007fbb8c62e4c8>

我看到它正在获取当前用户并尝试关联它但无济于事。谁能告诉我哪里出错了。

以下:

用户.rb

    class User < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable

  # Setup accessible (or protected) attributes for your model
  attr_accessible :email, :password, :password_confirmation, :remember_me,
                    :first_name, :last_name, :profile_name, :user_id
  # attr_accessible :title, :body

    has_one :temper

  def full_name
    first_name + " " + last_name
  end      
end

脾气.rb

class Temper < ActiveRecord::Base
  attr_accessible :first_name, :last_name, :temp_about, :temp_avail, :temp_city, :temp_country, :temp_email, :temp_phone_d, :temp_phone_n, :temp_pors, :temp_skills, :temp_st_address_1, :temp_st_address_2, :user_id

  has_one :user

end

仪表板/index.html.erb

<div class="span5">

    <ul>

    <li><h4>Name:</h4> <%= current_user.full_name %></li>
    <li><h4>Phone Number:</h4> <%= current_user.temp_phone_n %></li>
    <li><h4>Email:</h4>  <%= current_user.email %></li>
    <li><h4>City:</h4>  Toronto</li>
    <li><h4>Member Since:</h4>  <%= current_user.created_at.strftime("%B %d, %Y") %></li>

    </ul>
    </div>

任何援助将不胜感激

4

1 回答 1

1

你可以这样访问它:

current_user.temper.temp_phone_n

而你的关系是错误的,你不能在关系的两边都写 has_one

用户.rb

has_one :temper

脾气.rb

belongs_to :user
于 2012-08-29T12:16:15.227 回答