Tag: activesupport

Activesupport / Multi json:“无法识别您的适配器规范”

我有一个Ruby 1.9.3 / Rails 3.1项目,在gemfile中有以下内容: gem ‘rails’, ‘3.1.12’ gem ‘json’ gem ‘multi_json’, ‘1.7.7’ 该版本的rails将activesupport设置为3.1.12。 我不确定问题的确切原因是什么,但是当运行bundle exec rake test ,我得到了错误: /home/user/.gem/ruby/1.9.3/gems/multi_json-1.7.7/lib/multi_json.rb:121:in ‘rescue in load_adapter’: Did not recognize your adapter specification. (ArgumentError) … (more stack trace, including activesupport methods) 幸运的是我找到了解决方案! 见下文。

Warbler不包括ActiveSupport语言环境文件

我使用的是Rails 3.1.3,JRuby 1.7.6和Warbler 1.3.8 注意使用JRuby 1.6.7时没有发生这种情况 – 但我们最近尝试更新JRuby版本,这就是此问题开始时的情况。 我们使用Warbler将我们的ruby on rails应用程序打包成一个WAR文件。 该过程预编译所有资产,一切正常(似乎工作正常,命令成功) 然后,我们使用我们的软件(使用JRuby环境 – 1.7.6)部署WAR文件,并使用Jetty作为Web服务器 当服务器尝试解压缩并部署WAR文件时,我们收到以下错误: org.jruby.rack.RackInitializationException: No such file or directory – /home/production/var/tmp/Jetty_0_0_0_0_2525_ui.4.1.4.war____.ed5d4m/webapp/WEB-INF/jar:file:/home/production/var/tmp/Jetty_0_0_0_0_2525_ui.4.1.4.war____.ed5d4m/webapp/WEB-INF/lib/gems.jar!/gems/activesupport-3.1.3/lib/active_support/locale/en.yml from org/jruby/RubyFile.java:838:in `stat’ 我已经检查了解压缩的WAR目录,转到了gems.jar文件,解压缩并检查了所有文件 – activesupport 3.1.3 en.yml文件就在那里。 文件的权限正如我所期望的那样(即没有什么比以前的JRuby 1.6.7有所不同) 编辑 JRuby 1.7.6和Warbler 1.3.8之间存在一个错误 – https://github.com/jruby/warbler/issues/197遇到这种情况后,我尝试使用Warber 1.4.0.beta2 – 修复了warbler- jruby bug,但该修复程序只能让我足够远,以便再次收到丢失的locale / en.yml文件。 有什么建议? 谢谢!

如何在Rails的开发模式下自动为每个请求重新加载gem代码?

我正在开发一个Rails应用程序,其中大部分不是特定于应用程序的代码都是在各种gem中编写的,包括一些Rails引擎和一些我正在增强或修复bug的第三方gem。 gem ‘mygem’, path: File.expath_path(‘../../mygem’, __FILE__) 由于这些gem中的很多代码实际上都是应用程序的一部分,因此它仍然经常变化。 我希望能够利用Railsfunction,在开发时(即config.cache_classes为false时)在每个请求上重新加载代码,但这只在默认情况下在普通应用程序结构中完成。 如何配置Rails以在每个请求上重新加载gem代码,就像使用应用程序代码一样?

ActiveSupport :: JSON.decode无法正确处理文字换行符

这是预期的行为吗? 注意换行符如何丢失。 ruby-1.9.2-p136 :001 > ActiveSupport::JSON.decode(“{\”content\”: \”active\n\nsupport\”}”) => {“content”=>”active\nsupport”} unicode转义换行符也是如此: ruby-1.9.2-p136 :002 > ActiveSupport::JSON.decode(“{\”content\”: \”active\u000a\u000asupport\”}”) => {“content”=>”active\nsupport”} 我正在使用rails 3.0.3。

您如何知道何时使用XML解析器以及何时使用ActiveResource?

我尝试使用ActiveResource来解析更像HTML文档的Web服务,并且我一直收到404错误。 我是否需要为此任务使用XML解析器而不是ActiveResource? 我的猜测是ActiveResource仅在您使用来自另一个Rails应用程序的数据时才有用,并且XML数据可以轻松转换为Rails模型。 例如,如果Web服务是更广泛的XML(如HTML文档或RSS源),则需要使用像hpricot或nokogiri这样的解析器。 它是否正确? 您如何知道何时使用XML解析器以及何时使用ActiveResource?

NoMethodError:ActiveSupport的未定义方法`halt_callback_chains_on_return_false =’:模块

我一直在开发这个RoR 5.1应用程序,现在我需要添加一个新的迁移: class AddActiveFlagToParameters true end end 当我尝试运行迁移时,rails会引发错误: NoMethodError:ActiveSupport的未定义方法`halt_callback_chains_on_return_false =’:模块 阅读,我终于解决了这个问题,升级到Rails 5.2(gem activesupport 5.2.0)并在文件config / initializers / new_framework_defaults.rb中注释掉这一行。 但这听起来像是一个短期解决方案。 这来自哪里? 我怎样才能安全地处理这个问题?

样式化Rails date_select的日期字段

在Rails的表单中,日期select下拉很容易: 然后我得到3个select下拉菜单的年,月和日。 有没有使用JavaScript在这些select元素之间添加HTML的简单方法? 我希望能够更好地设计和标记它们。

两个ActiveSupport :: TimeWithZone对象之间的比较失败

在我的测试套件中,我有一个失败的测试。 expected[0][‘date’]来自SomeModel.first.created_at 在调试控制台中,我有以下内容: > expected[0][‘date’] => Tue, 25 Mar 2014 16:01:45 UTC +00:00 > res[0][‘date’] => Tue, 25 Mar 2014 16:01:45 UTC +00:00 > res[0][‘date’] == expected[0][‘date’] => false # wtf > res[0][‘date’].class => ActiveSupport::TimeWithZone > expected[0][‘date’].class => ActiveSupport::TimeWithZone > 这怎么可能 ? 我试图重现这个问题(我想也许在TimeWithZone上的==运算符检查引用,或类似的东西,但没有……): > t1 = Time.zone.at(0) => Thu, 01 Jan 1970 00:00:00 UTC +00:00 […]

Rails time_ago_in_words产生错误的输出

我认为这可能是由于转移到activesupport 2.3.5但现在我相信其他一些必定已经发生。 Model具有有效的rfc822样式日期: >> s.lastVisitDate => “Thu, 06 Jan 2011 22:24:10 -0800” 但在我看来: renders: *about {{count}} hours ago* instead of: *about 2 hours ago* which was working just fine earlier. 想知道是否有其他人看到过这种行为。 我已经查看了我的模型和视图的版本历史记录,最近没有任何变化,所以我相信我必须在配置方面弄乱一些东西。

访问ActiveSupport :: LogSubscriber子类中的Rails请求

我试图制作一些自定义Rails记录器,最终将记录到数据库。 但是,我无法访问请求对象之类的东西,我非常希望这样。 我目前正在尝试使用LogSubscriber(通知)接口来完成大部分工作; 也许这不是正确的方法。 我知道我可以滥用Thread.current []但我希望避免这样做。 这是我的代码,它是基本的,我可以得到它的一个例子。 这是在初始化程序中加载的。 module RequestLogging class LogSubscriber < ActiveSupport::LogSubscriber def process_action(event) pp request # <— does not work pp event end end RequestLogging::LogSubscriber.attach_to :action_controller