Ruby on rails Carrierwave-如何参考模型';来自不同模型的图像
我有一个用户模型和一个项目模型。用户模型有一个PhotoUploader作为carrierwave上传器,项目模型有一个LogoUploader作为carrierwave上传器 我还有一个参考用户或项目的海报模型。有了这张海报,我可以用同样的方式(显示名称、描述和图像)与用户或项目发表文章 问题是,我想引用用户的照片或项目的徽标,使用类似“image”的字符串属性,这是carrierwave的Uploader对象 我不想复制图像。Ruby on rails Carrierwave-如何参考模型';来自不同模型的图像,ruby-on-rails,ruby,ruby-on-rails-3,paperclip,carrierwave,Ruby On Rails,Ruby,Ruby On Rails 3,Paperclip,Carrierwave,我有一个用户模型和一个项目模型。用户模型有一个PhotoUploader作为carrierwave上传器,项目模型有一个LogoUploader作为carrierwave上传器 我还有一个参考用户或项目的海报模型。有了这张海报,我可以用同样的方式(显示名称、描述和图像)与用户或项目发表文章 问题是,我想引用用户的照片或项目的徽标,使用类似“image”的字符串属性,这是carrierwave的Uploader对象 我不想复制图像。 我该怎么做?这是正确的方法吗?多态关联是您需要的。 型号/媒体
我该怎么做?这是正确的方法吗?多态关联是您需要的。 型号/媒体.rb
class Media < ActiveRecord::Base
attr_accessible :content
belongs_to :mediable, polymorphic: true
end
class User < ActiveRecord::Base
attr_accessible :content, :name
has_many :medias, as: :mediable
end
class Project < ActiveRecord::Base
attr_accessible :content, :name
has_many :medias, as: :mediable
end
resources :users do
resources :medias
end
resources :projects do
resources :medias
end
将介质保存给用户时,将创建一个新的介质行:
id mediable_type mediable_id some_other_field
1 User 1 something here
然后你可以调用
当前用户.medias
我可以使用多态性,但我想为用户和项目使用不同的carrierwave上传程序,这就是问题所在。我不能像Media一样将两个上传器合并到一个模型中。请提醒我。