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

时间:2016-11-24 01:37:21

标签: ruby-on-rails carrierwave

我有一个上传者(carrierewave)来保存几个文件,但我担心有些日子,某些文件会有相同的名称并会导致问题。此外,我希望这些文件夹保持一种组织形式。

所以,我有一个第一个脚手架,“杂志”,它允许我创建一个带有标题和几个图像的杂志。我使用的第二个脚手架“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?这意味着要找到类“页面”所属,但我没有找到任何回答谷歌上的问题。

提前谢谢

1 个答案:

答案 0 :(得分:2)

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

<强> PageImageUploader.rb

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

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