私は、典型的な友情モデルを持つプロジェクトに取り組んでいます。ユーザークラスは、各ユーザーが複数の友達と友達になり、複数のユーザーと友達になることができるように、自己参照関係を持つ必要があります...要するに、このチュートリアルで説明されているものとまったく同じものが必要です:
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
私は自分のコードをデバッグしようとしてきました。インターネットを検索して何が問題なのかを調べましたが、うまくいくようです。何が問題なのかについて何か考えはありますか?