如何在Rails中获取调用对象?
我有一个零件模型,其中零件具有CarrierWave
附件图像和名为prime_pn
的额外列。
我需要根据prime_pn
中的某些条件获取部件的图像网址。
class Part < ActiveRecord::Base
self.table_name = "parts"
mount_uploader :image_name, ImageNameUploader
end
我有一个名为ImageNameUploader
的类,如下所示:
class ImageNameUploader < CarrierWave::Uploader::Base
include CarrierWave::RMagick
storage :file
def store_dir
"#{APP_CONFIG['part_image_path']}/#{model.id}"
end
def url
puts __getobj__
end
process :resize_to_fit => [800, 800]
version :thumb do
process :resize_to_limit => [50, 50]
end
version :small do
process :resize_to_limit => [100, 100]
end
def extension_white_list
%w(jpg jpeg gif png)
end
end
在url
的{{1}}方法中,我需要获取附件所有者,例如:
ImageNameUploader
我需要Part.find(1).image_name_url #=> "/apps/rails/portal/images/10010/rio.jpg"
方法中的Part Object,我如何获得它。
先谢谢。
答案 0 :(得分:-1)
来自CarrierWave自述文件:
模型变量指向上传者的实例对象 附于。
因此model.prime_pn
应该获得您所需的数据:
class ImageNameUploader < CarrierWave::Uploader::Base
def url
prime_pn = model.prime_pn
# do what ever with it
end
end