Admin::Recommandations#index 中的名称错误
NameError in Admin::Recommandations#index
我的 ActiveAdin 界面上有多个资源,其中之一 returns 当我进入索引视图“/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
我可以使用“/admin/recommandations/1”访问我的每个 Recommandation 资源,并且有一个作者是用户,所以我不明白问题出在哪里。
如果您选择命名与模型名称 不同 的关联,您应该指定 class_name
选项:
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
。
我的 ActiveAdin 界面上有多个资源,其中之一 returns 当我进入索引视图“/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
我可以使用“/admin/recommandations/1”访问我的每个 Recommandation 资源,并且有一个作者是用户,所以我不明白问题出在哪里。
如果您选择命名与模型名称 不同 的关联,您应该指定 class_name
选项:
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
。