小编use*_*835的帖子

NameError 未初始化常量 Model::Object

我是 ruby​​ on Rails 的新手。我的错误是

NameError in ReviewsController#create
uninitialized constant User::Review
Extracted source:
    @review = current_user.reviews.build(review_params)
Run Code Online (Sandbox Code Playgroud)

我在其他堆栈溢出问题上读到,通常是错误名称或忘记belongs_to或has_many的错误,但我相信我已经正确设置了关系。我正在使用 gem 设备来处理用户并登录/注册等

评论.rb

class Reviews < ActiveRecord::Base

  belongs_to :user
    belongs_to :renters

end
Run Code Online (Sandbox Code Playgroud)

用户.rb

class User < ActiveRecord::Base
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable

  has_many :reviews
end
Run Code Online (Sandbox Code Playgroud)

评论_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 …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails nameerror devise uninitialized-constant

5
推荐指数
1
解决办法
2万
查看次数