0

私は、典型的な友情モデルを持つプロジェクトに取り組んでいます。ユーザークラスは、各ユーザーが複数の友達と友達になり、複数のユーザーと友達になることができるように、自己参照関係を持つ必要があります...要するに、このチュートリアルで説明されているものとまったく同じものが必要です:

http://railscasts.com/episodes/163-self-referential-association?view=asciicast

しかし、ビデオ全体を手紙に従った後、このエラーが発生します

uninitialized constant User::Friendship

これは私の User モデルがどのように見えるかです:

class User < ActiveRecord::Base
  has_many :friendships
  has_many :friends, :through => :friendships
end

友情モデル:

class Friendship < ActiveRecord::Base
  belongs_to :user
  belongs_to :friend, class_name => "User"
end

そして、friendships_controller の create メソッド

def create
    current_user = User.find(session[:user])
    # BELOW LINE HAS THE ERROR
    current_user.friendships.build(:friend_id => params[:friend_id])

    respond_to do |format|
      if @friendship.save
        format.html { redirect_to @friendship, notice: 'User Added To your team.' }
        format.json { render :show, status: :created, location: @friendship }
      else
        format.html { render :new }
        format.json { render json: @friendship.errors, status: :unprocessable_entity }
      end
    end
  end

それが問題かどうかはわかりませんが、ビデオで Ryan のようなユーザー管理プラグインを使用していません (彼は OAuth か何かを使用していると思います) ... さらに、彼のように nifty_scaffold を介して Friendship コントローラーを生成しませんでしたチュートリアルでは、足場を生成するために使用したコマンドを次に示します

rails generate scaffold Friendship user_id:integer friend_id:integer create destroy

さらに、役立つ場合は、ここに私のルビーとレールのバージョンがあります...

Rails version 4.1.7
Ruby version 2.0.0p481

私は自分のコードをデバッグしようとしてきました。インターネットを検索して何が問題なのかを調べましたが、うまくいくようです。何が問題なのかについて何か考えはありますか?

4

0 に答える 0