我使用的是轨道3,我想设置基于当前环境中的存储变量,象下面这样:设定来可变on Rails的环境
#if enviroment = development or test
:storage => :filesystem,
#else
:storage => :s3,
#end
你会有什么办法呢?我想过设置一个环境变量,但我认为必须有更好的方法。
感谢您的时间 西蒙娜
我使用的是轨道3,我想设置基于当前环境中的存储变量,象下面这样:设定来可变on Rails的环境
#if enviroment = development or test
:storage => :filesystem,
#else
:storage => :s3,
#end
你会有什么办法呢?我想过设置一个环境变量,但我认为必须有更好的方法。
感谢您的时间 西蒙娜
一种方法是使用rails中的内置环境设置。在环境目录中设置的变量将覆盖配置/环境
到config/environment.rb
ATTACHMENT_OPTIONS = {:storage => :filesystem}
配置/环境/ production.rb
ATTACHMENT_OPTIONS = {:storage => :s3}
然后在后面你的应用,只需要询问ATTACHMENT_OPTIONS [:storage] - 在你的应用中没有if/else。
Rails.env
会给你你在找什么。
您还可以使用
Rails.env.development?
Rails.env.test?
Rails.env.production?
Rails.env.your_custom_environment?
为了测试这些特定的环境。
谢谢!我必须将测试放入模型中,并且使用Netbeans时,我总是遇到错误。这里的代码: has_attached_file:avatar, :path =>“:attachment /:id /:style。:extension”, :url =>“/:附件/:id/:style.:extension”, : default_url =>'/:attachment/missing_:style.jpg', :styles => {:small =>“80x80>”,:thumb =>“100x100>”}, if(Rails.env.development?or Rails.env.test) :存储=>:文件系统 别的 :存储=>:S3 端 :default_style =>:拇指, :桶=> 'josha_pictures', :s3_credentials => { : access_key_id => ENV ['S3_KEY'], : –
什么是错误?你会介意编辑你的问题并把代码放在那里吗? –
为什么不使用三元运算符而不是if/else? :storage =>(Rails.env.development?|| Rails.env.test?)? :filesystem::s3 –
非常感谢Jesse! :) –