0

Railsは初めてで、協会のマニュアルを読み、協会が機能しない理由の答えを見つけようとしました。

さまざまなユーザータイプや機能に簡単に関連付けるために、プロファイルをユーザーから分離することを選択しました。ユーザーのタイプごとに3〜4の異なるモデルを用意します。

私は持っています:

テンパーダッシュボードビューと呼ばれるデバイスプロファイルモデルを使用するユーザーモデル

現在のユーザーのダッシュボードのプロファイルモデルから情報を呼び出そうとしている場合、ガイドを正しく読んでいれば、以下のコードが機能するはずです。

エラーは次のとおりです。

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

現在のユーザーを取得して関連付けようとしているが、役に立たないことがわかります。誰かが私がどこで間違っているのか教えてもらえますか?

下:

user.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

Temper.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 に答える