我正在使用carrierwave将图片上传到我的网络应用程序。
有必要将它们上传到父模型的位置。
即
父母是有许多图像的房子。
所以我想将图像存储在
中public/uploads/houses/images/[:house_id]/
这是我目前的设置。
..uploaders/image_uploader.rb
def store_dir
puts "uploads/house/#{model.house_id}/#{mounted_as}/#{model.id}"
"uploads/house/#{model.house_id}/#{mounted_as}/#{model.id}"
end
puts语句打印出我想要的正确路径,但保存的路径不匹配。 似乎model.house_id返回nil
众议院模式
class House < ActiveRecord::Base
attr_accessible :address, :description, :title, :price, :image, :image_id, :images, :image_cache
has_many :images
mount_uploader :image, ImageUploader
end
图像模型
class Image < ActiveRecord::Base
attr_accessible :house_id, :image
mount_uploader :image, ImageUploader
belongs_to :house
end
如何获得正确的路径/我做错了什么:(
答案 0 :(得分:0)
请尝试:
def cache_dir
"#{Rails.root}/public/uploads/houses/images"
end
def store_dir
"#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end