【发布时间】:2016-12-12 15:45:30
【问题描述】:
简而言之
我在验证/模型保存时遇到以下错误
NameError (uninitialized constant PolymorphicAssociation):
背景和代码
考虑以下模型(省略Mongoid::Document)
class User
has_many :media_views
class MediaView
field :last_seen_at, type: DateTime
belongs_to :user
belongs_to :media, polymorphic: true
class Image
has_many :views, inverse_of :media, class_name: 'MediaView'
class Video
has_many :views, inverse_of :media, class_name: 'MediaView'
我正在尝试通过服务查找或更新现有的MediaViews
# my_view_service.rb
class ViewService
def initialize(user, media)
@user = user
@media = media
end
def just_viewed!
set_view
@view.last_seen_at = Time.now
@view.save
end
def set_view
@view = MediaView.where(
user: @user,
media: @media,
).first_or_initialize
end
ViewService.new(User.first, Image.first).just_viewed!
保存我遇到的@view 后
NameError (uninitialized constant Media):
【问题讨论】:
标签: ruby-on-rails mongodb polymorphism ruby-on-rails-5 mongoid6