我了解如何使用活动目录中的 class_name 选项来引用命名空间模型:
has_one :slide, :class_name => '::Refinery::Slides::Slide'
以及如何使用多态关联
has_one :slide, :as => :slideable
你可以一起使用它们吗?
has_one :slide, :class_name => '::Refinery::Slides::Slide', :as => :slideable
如果是这样,你如何定义多态关联?
belongs_to :slideable, :polymorphic => true, class_name='::Refinery::Slideables::Slideable' #NO
我正在使用 RefineryCMS,您添加的每个引擎都在 Refinery::PluralModel::SingularModel 中命名。基本上,我希望能够将幻灯片与案例研究或工作相关联。以下是实际模型。
module Refinery
module CaseStudies
class CaseStudy < Refinery::Core::BaseModel
attr_accessible :title, :description, :position
has_one :slide, :class_name => '::Refinery::Slides::Slide', :as => :slideable
end
end
end
module Refinery
module Works
class Work < Refinery::Core::BaseModel
attr_accessible :title, :description, :position,
has_one :slide, :class_name => '::Refinery::Slides::Slide', :as => :slideable
end
end
end
module Refinery
module Slides
class Slide < Refinery::Core::BaseModel
attr_accessible :slide_id, :caption, :position, :slideable_id, :slideable
belongs_to :slide, :class_name => '::Refinery::Image'
belongs_to :slideable, :polymorphic => true
end
end
end
似乎我应该可以说 slide.slideable.title 但我收到一个错误:nil:NilClass 的未定义方法“标题”
apidoc指定 inverse_of 不能与多态一起使用,但对 class_name 只字未提