问题标签 [activesupport]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
37381 浏览

ruby-on-rails - Rails 模块中的 mattr_accessor 是什么?

我在 Rails 文档中找不到这个,但似乎'mattr_accessor'是普通 Ruby类中'attr_accessor' (getter & setter) 的模块推论。

例如。在课堂上

例如。在一个模块中

此辅助方法由ActiveSupport提供。

0 投票
5 回答
37094 浏览

ruby-on-rails - Rails ActiveSupport 时间解析?

Rails 的 ActiveSupport 模块用许多方法扩展了内置的 ruby​​ Time 类。

值得注意的是,有一种to_formatted_s方法可以让您编写Time.now.to_formatted_s(:db)以获取数据库格式的字符串,而不必strftime到处编写难看的格式字符串。

我的问题是,有没有办法倒退?

类似的东西Time.parse_formatted_s(:db)会解析数据库格式的字符串,返回一个新的时间对象。这似乎是 rails 应该提供的东西,但如果是,我找不到它。

我只是找不到它,还是我需要自己写?

谢谢

0 投票
6 回答
16690 浏览

ruby-on-rails - 你如何处理 ActiveSupport::JSON 和 JSON gem 之间的冲突?

我被这个问题难住了。

ActiveSupport::JSON定义to_json了各种核心对象,JSON gem 也是如此。但是,实现并不相同——ActiveSupport 版本带有参数,而 JSON gem 版本则没有。

我安装了一个需要 JSON gem 的 gem,但我的应用程序坏了。问题是我to_json在返回对象列表的控制器中使用,但我想控制返回哪些属性。

当我系统中任何地方的代码时,require 'json'我都会收到此错误消息:

TypeError: wrong argument type Hash (expected Data)

我尝试了一些我在网上阅读的东西来修复它,但没有任何效果。我最终重新编写了 gem 来使用ActiveSupport::JSON.decode而不是JSON.parse.

这可行,但不可持续……每次我想使用需要 JSON gem 的 gem 时,我都不能分叉 gem。

更新:这个问题的最佳解决方案是升级到 Rails 2.3 或更高版本,它修复了它。

0 投票
2 回答
2552 浏览

ruby-on-rails - Rails 测试有 setup_class/teardown_class 吗?

我需要为某些类或系统范围的 Rails 测试设置和拆卸方法,但我只找到了一种方法来定义适用于每个测试级别的常规安装/拆卸方法。

例如:

将为每个测试用例执行输出,但我想要类似的东西:

它将在所有测试方法之前_执行设置夹具,然后在所有测试方法之后执行拆卸夹具。_

有没有这样的机制?如果没有,是否有一种简单的方法来修补这个机制?

0 投票
2 回答
2905 浏览

ruby-on-rails - 为什么都是autoload,load_all!并要求所有在active_support.rb 中使用?

我正在寻找active_support.rb尝试了解它使用的加载过程。它使用三种加载方法load_all!autoloadrequire。为什么在同一个文件中使用三种不同的加载方式?

0 投票
5 回答
3730 浏览

ruby-on-rails - 如何在 Rails 中使用 Time?

我一直在努力尝试在 Rails 中使用 Time。基本上我需要将所有时间输出(核心以及 ActiveSupport)设置为服务器的本地时间 - 没有 GMT,没有 UTC 等。我看过各种与时间相关的帖子,但它们通常涉及有人需要设置它每个用户。我的几乎没有那么复杂,我只是希望在使用任何 Time 对象时保持一致性。(我也很感激没有每 3 秒收到一次错误,告诉我我不能将 Fixnum(或其他类型)转换为字符串——它是 Ruby,去做吧!)

Time.new 与 ActiveSupport 1.second.ago 的时间似乎也大不相同。无论如何,关于在 Rails 中使用 Time,是否有人有任何质量建议?

0 投票
6 回答
6056 浏览

ruby-on-rails - 无法激活 activesupport (>= 2.3.2, runtime),已经激活了 activesupport-2.1.2。这是什么意思?

在尝试启动一些旧版本的开源 Rails 项目时,遇到了一个多云的错误消息:

“无法激活 activesupport (>= 2.3.2, runtime),已经激活了 activesupport-2.1.2”

这是什么意思?我的盒子上安装了任一版本的 rails 和 activesupport。

我很困惑...

0 投票
2 回答
2601 浏览

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

我尝试使用 ActiveResource 解析更像 HTML 文档的 Web 服务,但一直收到 404 错误。

我是否需要为此任务使用 XML 解析器而不是 ActiveResource?

我的猜测是 ActiveResource 仅在您使用来自另一个 Rails 应用程序的数据并且 XML 数据很容易转换为 Rails 模型时才有用。例如,如果 Web 服务是范围更广的 XML,如 HTML 文档或 RSS 提要,您希望使用像 hpricot 或 nokogiri 这样的解析器。它是否正确?

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

0 投票
3 回答
1041 浏览

ruby-on-rails - 重载 ActiveSupport 的默认 to_sentence 行为

ActiveSupport 提供了很好的方法to_sentence。因此,

可以更改最后一个单词的连接器很好,因为我不喜欢多余的逗号。但它需要很多额外的文本:44 个字符而不是 11 个!

问题:将默认值更改为最类似于红宝石的方法是:last_word_connector什么' and '

0 投票
1 回答
1071 浏览

ruby - ActiveRecord 干扰 Logger

使用 ActiveRecord(需要 ActiveSupport)似乎会混淆 Logger 类,从而导致困难。这可以通过一些示例代码看出:

运行此代码将产生这个可爱的输出:

但是,如果我取消注释 require 'activerecord' 行,我会得到这个:

因此,我在查看 activesupport 之后进行了一些搜索:

记录器.rb

我找到了以下“工作解决方案”

使用上述内容,我得到了我喜欢的输出。然而,在我看来,这看起来很恶心,不像Ruby。有谁知道是否有更简单的方法来获得所需的结果?

谢谢!