Ruby on rails Admin::Recommandations#索引中的NameError

Ruby on rails Admin::Recommandations#索引中的NameError,ruby-on-rails,ruby-on-rails-3,activeadmin,Ruby On Rails,Ruby On Rails 3,Activeadmin,我的ActiveAdin接口上有多个Resources,其中一个在我进入索引视图“/admin/recommandations”时返回错误,并显示以下消息: NameError in Admin::Recommandations#index Showing /home/charles/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/bundler/gems/activeadmin-0a5a15b88bff/app/views/active_admin/res

我的ActiveAdin接口上有多个Resources,其中一个在我进入索引视图“/admin/recommandations”时返回错误,并显示以下消息:

NameError in Admin::Recommandations#index 
Showing /home/charles/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/bundler/gems/activeadmin-0a5a15b88bff/app/views/active_admin/resource/index.html.arb where line #2 raised: 
uninitialized constant Recommandation::Writer
推荐功能很简单:一个用户可以通过推荐给另一个用户打分。在我的推荐模型中,我有一个用户(被评分的用户)和一个作者(写推荐的用户)

推荐模式:

class Recommandation < ActiveRecord::Base
  before_validation:check_models

  belongs_to :user
  validates :user_id, presence: true
  validates_associated :user

  # Il s'agit de l'utilisateur qui inscrit la recommandation
  has_one :writer, :foreign_key => "writer_id" 
  validates :writer_id, presence: true
  validates_associated :writer

  validates :modele, presence: true

  ##
  # @return L'origine liée
  def writer
    if self.writer_id != nil
      User.find(self.writer_id)
    end
  end
类推荐“writer\u id”
验证:writer\u id,状态:true
验证关联的\u:编写器
验证:modele,状态:true
##
#@return L'origine liée
def编写器
如果self.writer_id!=无
User.find(self.writer\u id)
结束
结束

我可以使用“/admin/recommandations/1”访问我的每个推荐资源,并且有一个作者是用户,因此我不知道问题出在哪里。

如果您选择命名与模型名称不同的关联,则应指定
类名
选项:

has_one :writer, foreign_key: :writer_id, class_name: User
此外,如果数据库设置正确,此方法:

  def writer
    if self.writer_id != nil
      User.find(self.writer_id)
    end
  end

是多余的,因为Rails将从关联中为您处理
writer

如果您选择命名与模型名不同的关联,则应指定
类名
选项:

has_one :writer, foreign_key: :writer_id, class_name: User
此外,如果数据库设置正确,此方法:

  def writer
    if self.writer_id != nil
      User.find(self.writer_id)
    end
  end

是多余的,因为Rails将从关联中为您处理
writer

看起来您使用了
推荐::writer
而不是
推荐。writer
?如果是这样,请检查类和实例方法之间的差异。除非@NilsLandt正确,否则您可能需要明确指定类名:
有一个:writer,外键:“writer\u id”,类名:'::writer'
<代码>:告诉它在根命名空间中查找类。我在代码中的任何地方都不使用
推荐::编写器。在插入
class\u name:'::Writer'
后,我得到了相同的错误,但是使用
Writer
而不是
Recommandation::Writer
看起来您使用了
Recommandation::Writer
而不是
Recommandation.Writer
?如果是这样,请检查类和实例方法之间的差异。除非@NilsLandt正确,否则您可能需要明确指定类名:
有一个:writer,外键:“writer\u id”,类名:'::writer'
<代码>:
告诉它在根命名空间中查找类。我在代码中的任何地方都不使用
推荐::编写器。在插入
class\u name:'::Writer'
之后,我得到了相同的错误,但是使用了
Writer
而不是
Recommandation::Writer