我是 ruby on rails 的新手。我的错误是
NameError in ReviewsController#create
uninitialized constant User::Review
Extracted source:
@review = current_user.reviews.build(review_params)
我阅读了其他堆栈溢出问题,这些问题通常是错误名称或忘记belongs_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
评论_控制器.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 的类似代码正在运行,所以我不确定出了什么问题。