在carrierwave store_dir中使用Rails应用程序变量

时间:2013-08-10 20:57:05

标签: ruby-on-rails store carrierwave dir

我希望使用application_controller

中设置的应用程序变量

application_controller.rb

def current_company
 @current_company ||= Company.find(cookies[:default_company]) if cookies[:default_company]
end

我现在如何在上传器中使用current_company.id(company_logo_uploader.rb)

def store_dir
 "uploads/#{current_company.id}/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end

我得到一个未定义的局部变量或方法`current_company':CompanyLogoUploader

帮助将非常感激。

1 个答案:

答案 0 :(得分:3)

您必须调用类上定义的实例方法,并在其前面添加model.定义

试试这个

"uploads/#{model.current_company.id}/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"

确保设置了@current_company,否则它将返回nil