Rails Carrierwave stor_dir位置无效(Model。#{association}返回nil)

时间:2013-04-10 04:15:46

标签: ruby-on-rails ruby image upload carrierwave

我正在使用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

如何获得正确的路径/我做错了什么:(

1 个答案:

答案 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