Tag: yaml

不识别rails中S3.yml中的ENV变量

我目前正在尝试使用最新的aws-sdk建议的gem配置Paperclip。 在我的S3.yml文件中,我有类似的东西 development: bucket: newmeeter-dev access_key_id: ENV[‘S3_KEY’] secret_access_key: ENV[‘S3_SECRET’] 但它没有识别ENV变量。 我收到以下错误 AWS::S3::Errors::InvalidAccessKeyId in PhotosController#create The AWS Access Key Id you provided does not exist in our records. 如果我尝试将访问和秘密直接放入文件中,它就能完美地运行。 同时我尝试将两个ENV变量打印到视图中或在控制台中我可以看到它们的值可以。 我不知道它为什么不承认它。

独立ruby – 如何从database.yml加载不同的环境

我有一个后台进程来修改数据库中的记录。 模型使用以下内容连接到数据库: dbconfig = YAML::load(File.open(‘database.yml’)) ActiveRecord::Base.establish_connection(dbconfig[“development”]) class Clcar < ActiveRecord::Base …. end 所有模型类都将这些行放在顶部。 我同意这是一个糟糕的做法。 有没有更好的方法来连接到模型类? 如何将连接传递给模型? 我希望能够在不同的环境中运行我的后台进程,比如“生产”。 我如何实现这一目标?

如何重现/清理凌乱的POST参数以避免使用delayed_job的YAML序列化问题?

今天,每次我开始使用delayed_job工作者时,这个过程都会立刻死去。 经过一些调查(并找出有关delayed_job的前台模式),我终于发现问题是delayed_job序列化我的活动记录对象的方式是在YAML加载部分触发exception: Psych::SyntaxError: (): mapping keys are not allowed in this context at line 7 column 14 from /Users/mick/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/psych.rb:203:in `parse’ from /Users/mick/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/psych.rb:203:in `parse_stream’ from /Users/mick/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/psych.rb:151:in `parse’ from /Users/mick/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/psych.rb:127:in `load’ from /Users/mick/.rvm/gems/ruby-1.9.3-p448/gems/safe_yaml-0.9.7/lib/safe_yaml.rb:144:in `load_with_options’ from (irb):111 from /Users/mick/.rvm/gems/ruby-1.9.3-p448/gems/railties-3.2.16/lib/rails/commands/console.rb:47:in `start’ from /Users/mick/.rvm/gems/ruby-1.9.3-p448/gems/railties-3.2.16/lib/rails/commands/console.rb:8:in `start’ from /Users/mick/.rvm/gems/ruby-1.9.3-p448/gems/railties-3.2.16/lib/rails/commands.rb:41:in `’ from script/rails:6:in `require’ from script/rails:6:in `’ 在delayed_job尝试时发生了这种情况: YAML.load(my_job.handler) ( 其他人在我面前有同样的问题 ) 找到有问题的Delayed::Backend::ActiveRecord::Job实例后,一个puts […]

YAML – TypeError:无法转储匿名模块

在application_controller的一个动作中,如果我们尝试: p request.env.to_yaml 我会收到这个错误: TypeError: can’t dump anonymous module: # from /Users/twer/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:267:in `visit_Module’ from /Users/twer/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:102:in `accept’ from /Users/twer/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:447:in `block in dump_ivars’ from /Users/twer/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:445:in `each’ from /Users/twer/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:445:in `dump_ivars’ from /Users/twer/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:124:in `visit_Object’ from /Users/twer/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:102:in `accept’ from /Users/twer/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:447:in `block in dump_ivars’ from /Users/twer/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:445:in `each’ from /Users/twer/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:445:in `dump_ivars’ from /Users/twer/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:124:in `visit_Object’ from /Users/twer/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:102:in `accept’ from /Users/twer/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:292:in `block in visit_Hash’ […]

有没有办法在YAML中对数组进行别名/锚定?

我正在使用Jammit将资产打包为Rails应用程序,并且我有一些资产文件,我希望将其包含在几个组中。 例如,我希望Sammy及其插件可以同时包含在我的mobile和screen JS包中。 我试过这个: sammy: &SAMMY – public/javascripts/vendor/sammy.js – public/javascripts/vendor/sammy*.js mobile: <<: *SAMMY – public/javascripts/something_else.js 还有这个: mobile: – *SAMMY 但两者都把Sammy JS文件放在嵌套数组中,Jammit无法理解。 是否有将Array的元素直接包含在另一个Array中的语法? 注意 :我意识到在这种情况下SAMMY数组中只有两个元素,所以在每个包中给每个元素一个别名和引用都不会太糟糕。 这种情况很好,但是当有五个或十个具有特定加载顺序的元素时,很快就无法维护。

如何在rails上的.yml本地化文件中打破行?

我有一个带有一些本地化的terms.en.yml文件,例如: en: devise: registrations: terms: text: ‘This agreement was written in English (US). To the extent any translated version of this agreement conflicts with the English version, the English version controls. Please note that Section 16 contains certain changes to the general terms for users outside the United States.\n\ Some new line’ 我怎么能在那里打破一条线或创建一个段落? 这里有一些信息,但它对我没有帮助,我做错了。 http://yaml.org/spec/1.1/#b-paragraph-separator

Psych :: SyntaxError无法解析YAML

我在fedora 16 Rails版本2.3.5和Ruby 1.9.2.p320上运行的rails应用程序中遇到问题。 该应用程序在Ubuntu 11.10上正常运行。 当我运行rails服务器并命中任何控制器时出现以下错误。 控制器名称#actionname中的Psych :: SyntaxError 无法解析YAML 我试过应用以下技巧,但这对我不起作用。 我在config / boot.rb中添加了以下行 require ‘yaml’ YAML::ENGINE.yamler = ‘syck’ 错误跟踪是 .rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/psych.rb:148:in `parse’ .rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/psych.rb:148:in `parse_stream’ .rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/psych.rb:119:in `parse’ .rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/psych.rb:106:in `load’ .rvm/gems/ruby-1.9.2-p320@sunago/gems/activesupport-2.3.5/lib/active_support/vendor/i18n-0.1.3/lib/i18n/backend/simple.rb:189:in `load_yml’ .rvm/gems/ruby-1.9.2-p320@sunago/gems/activesupport-2.3.5/lib/active_support/vendor/i18n-0.1.3/lib/i18n/backend/simple.rb:176:in `load_file’ .rvm/gems/ruby-1.9.2-p320@sunago/gems/activesupport-.3.5/lib/active_support/vendor/i18n-0.1.3/lib/i18n/backend/simple.rb:13:in `block in load_translations’ .rvm/gems/ruby-1.9.2-p320@sunago/gems/activesupport-2.3.5/lib/active_support/vendor/i18n-0.1.3/lib/i18n/backend/simple.rb:13:in `each’ .rvm/gems/ruby-1.9.2-p320@sunago/gems/activesupport-2.3.5/lib/active_support/vendor/i18n-0.1.3/lib/i18n/backend/simple.rb:13:in `load_translations’ .rvm/gems/ruby-1.9.2-p320@sunago/gems/activesupport-2.3.5/lib/active_support/vendor/i18n-0.1.3/lib/i18n/backend/simple.rb:85:in `init_translations’ .rvm/gems/ruby-1.9.2-p320@sunago/gems/activesupport-2.3.5/lib/active_support/vendor/i18n-0.1.3/lib/i18n/backend/simple.rb:74:in `available_locales’ .rvm/gems/ruby-1.9.2-p320@sunago/gems/activesupport-2.3.5/lib/active_support/vendor/i18n-0.1.3/lib/i18n.rb:50:in `available_locales’ .rvm/gems/ruby-1.9.2-p320@sunago/gems/actionpack-2.3.5/lib/action_view/template.rb:226:in `valid_locale?’ .rvm/gems/ruby-1.9.2-p320@sunago/gems/actionpack-2.3.5/lib/action_view/template.rb:243:in `parse_extensions’ .rvm/gems/ruby-1.9.2-p320@sunago/gems/actionpack-2.3.5/lib/action_view/template.rb:233:in `split’ .rvm/gems/ruby-1.9.2-p320@sunago/gems/actionpack-2.3.5/lib/action_view/template.rb:118:in `initialize’ […]

在rails上的ruby中更新yaml文件的key的值

我有一个带有一些键值的yml文件。 age: 24 Name: XYZ 我想要代码将XYZ中的“Name”键的值更新为ABC? 我该怎么做?

使用词典重构Ruby on Rails i18n YAML文件

这个 StackOverflow问题给了我一些关于Rails i18n文件的良好结构的思考,所以我想我会分享另一个结构来重构Rails i18n yml文件供您考虑/批评。 鉴于我想 保持默认的应用程序结构,这样我就可以在我的视图中使用像t(‘.some_translation’)这样的简写“懒惰”查找,并且知道在应用程序中使用翻译的地方, 避免尽可能多的字符串重复,特别是使用不仅相同的单词,但也有相同的上下文/含义, 只需更改一次密钥就可以反映出它引用的所有地方, 对于config / locales / en.yml文件,看起来像这样: activerecord: attributes: user: email: Email name: Name password: Password password_confirmation: Confirmation models: user: User users: fields: email: Email name: Name password: Password confirmation: Confirmation sessions: new: email: Email password: Password 我可以看到存在重大的重复,并且诸如“电子邮件”和“密码”之类的词语的上下文是明确的并且在它们各自的视图中具有相同的含义。 如果我决定将“电子邮件”更改为“电子邮件”,那么必须去更改它们会有点烦人,所以我想重构字符串以引用某种字典。 那么,如何将字典哈希添加到文件的顶部,其中包含一些&锚点: dictionary: email: &email Email name: &name Name password: […]

为什么yaml文件上传不起作用? 我认为许可问题

我想加载config目录,用户选择的yaml文件。 我有一个观点: File Upload Upload your Yaml Configuration File { :multipart => true } do |f| %> Select File: ‘Uploading…’ %> 我有一个控制器: class UploadController < ApplicationController def uploadFile uploaded_io = params[:uploadFile][:upload] File.open(Rails.root.join('public', uploaded_io.original_filename), 'w') do |file| file.write(uploaded_io.read) end flash.now[:notice]="File has been uploaded successfully" end end 当用户选择文件并按“上传”时,没有任何反应,文件不在配置文件夹中。 我能做什么? 也许我应该使用“import yaml”并以某种方式加载它,怎么样? 日志说: Started POST “/upload/uploadfile” for 127.0.0.1 […]