Ruby on Railsは初めてです。私が持っているエラーは
NameError in ReviewsController#create
uninitialized constant User::Review
Extracted source:
@review = current_user.reviews.build(review_params)
私は他のスタック オーバーフローの質問を読みましたが、通常は名前が間違っているか、begs_to または has_many を忘れた場合のエラーですが、関係を正しく設定したと思います。ユーザーを処理し、サインイン/サインアップなどにgemデバイスを使用しています
レビュー.rb
class Reviews < ActiveRecord::Base
belongs_to :user
belongs_to :renters
end
ユーザー.rb
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
has_many :reviews
end
Reviews_Controller.rb
class ReviewsController < ApplicationController
before_action :set_renter
before_action :authenticate_user!
def new
@review = Reviews.new(renters: @renter)
end
def create
@review = current_user.reviews.build(review_params)
@review.renter = @renter
@review.save
redirect_to @renter
end
private
def set_renter
@renter = Renters.find(params[:renter_id])
end
def review_params
params.require(:reviews).permit(:comment, :rating)
end
end
Renters モデルは正常に機能しており、新しい Renter を作成する必要がある同様のコードが機能しているため、何が問題なのかわかりません。