如何获取当前 class 所属的 class?

How Do I get the class to which the current class belongs to?

我有一个上传器 (carrierewave) 可以保存几个文件,但我担心有一天,一些文件会重名并会导致问题。此外,我希望文件夹保持组织的外观。

因此,我有了第一个脚手架,"magazine" 允许我创建一本带有标题和多张图片的杂志。我使用的第二个脚手架,"page",允许多上传系统。

使用这种方法,我的模型看起来像这样:

magazine.rb

has_many :pages, :inverse_of => :magazine, :dependent => :destroy

pages.rb

belongs_to :magazine

现在在我的上传器中,我有以下内容:

  def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}"
  end

创建这样的文件夹:"uploads / page / image",然后上传里面的每一张图片,即使是其他杂志,所以图片会混淆。

我的问题如下:有没有办法改写杂志的 ID?这意味着要找到 class "pages" 所属的内容,但我没有找到任何可以回答我在 google.

上的问题的内容

提前致谢

如果您在模型中安装了自定义上传器Page您可以正常访问模型属性

PageImageUploader.rb

def store_dir
  "uploads/magazines/#{model.magazine.id}/#{model.id}"
end

但是,您无法访问模型 ID,除非您的模型已持久化。可以找到解决方法 here.