0

我想为两个不同的模型保存图像。我正在使用carrierwave gem。

我创建如下。

 class User < ActiveRecord::Base
  mount_uploader :avathar, AvatarUploader
 end

 class News < ActiveRecord::Base
  mount_uploader :avatar, NewsUploader
 end

上传者:

 class AvatarUploader < CarrierWave::Uploader::Base
  def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end
 end

 class NewsUploader < CarrierWave::Uploader::Base
  def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end
 end

它适用于用户模型。但它不适用于新闻模型。请帮我纠正这个问题。提前致谢。

4

1 回答 1

0

您显示的信息并不能真正帮助回答您的问题...

您是否为此创建了迁移,例如,但对于帖子?(AddAvatarToUsers)

class AddAvatarToNews < ActiveRecord::Migration
  def self.up
    add_column :news, :avatar, :string
  end
  def self.down
    remove_column :news, :avatar
  end
end

然后在你的控制器中获取类似这样的新闻......

def show
    @news = News.find(params[:id])
    @photo = Photo.new(params[:news_id])
end

另外,您的 config/routes.rb 中的内容是什么,您是否说明了正确的资源?

IE

 resources :users
 resources :news
 resources :photos
于 2013-05-15T14:56:12.580 回答