2013-04-10 2 views
0

Я использую несущую для загрузки изображений в свой webapp.Rails Carrierwave stor_dir недействительно (модель. # {Association} возвращает нуль)

Необходимо загрузить их в местоположение родительской модели.

Т.е.

Родитель является домом, который имеет много изображений.

Так что я хочу, чтобы хранить изображения в

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 возвращается ноль

дом Модель

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

Попробуйте:

def cache_dir 
"#{Rails.root}/public/uploads/houses/images" 
end 
def store_dir 
    "#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 
end 
Смежные вопросы