- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在尝试编写一个简单的 Sinatra 东西,但我需要操作包中的 ActionView::Helpers::NumberHelper。 http://api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html
问题是,如何安装和使用它?
irb(main):001:0> require 'action_view/helpers/number_helper'
irb(main):002:0> number_with_precision(1)
NoMethodError: undefined method `number_with_precision' for main:Object
irb(main):004:0> ActionView::Helpers::NumberHelper.number_with_precision(1)
NoMethodError: undefined method `number_with_precision' for ActionView::Helpers::NumberHelper:Module
为什么这个简单的步骤不起作用?
此外,如果我需要所有废话:
irb(main):001:0> require 'action_pack'
irb(main):004:0> require 'action_view'
irb(main):005:0> include ActionView::Helpers::NumberHelper
irb(main):006:0> number_to_phone(12345)
NoMethodError: undefined method `starts_with?' for "12345":String
如何理解所有这些?为什么这个模块不起作用?为什么它不需要它需要的任何东西?它需要什么? starts_with 在哪里?
Google 对这些问题完全保持沉默。
UPD:现在我得到以下内容
number_with_precision(1, :locale => 'fr')
TypeError: wrong argument type nil (expected Fixnum)
在我看来,我的 NumberHelper 坏了。这不是好的行为。
最佳答案
所以,在做了一些研究之后,我在 Rails 的 master 分支上发现了以下 pull request
https://github.com/rails/rails/pull/6315
它几乎旨在移动 ActionView::Helpers::NumberHelper
来自 ActionView
至 ActiveSupport
我还看到了一些已解决的问题,旨在解决一些允许包含 NumberHelper
的问题。作为独立的。这意味着需要修复等。我没有发现 number_to_phone
的未解决问题但问题的根源在于 ActiveSupport
添加别名 starts_with?
到 String
类(class)。我不确定他们是否在那里发现了那个错误。
无论如何,使用ActionView
版本 3.2.13
您可以执行以下操作
require 'action_view'
include ActionView::Helpers::NumberHelper
number_with_precision 3.1
#=> "3.100"
至于number_to_phone
,这仍然会与当前版本中断。我正在做一个 PR 来解决这个问题。
编辑
至于区域设置问题,似乎如果您指定一个本地区域,您需要在 I18n
中设置正确的选项。让它工作。如果您不提供语言环境,默认值将如下所示 {:separator=>".", :delimiter=>"", :precision=>3, :significant=>false, :strip_insignificant_zeros=>false}
,否则,哈希将为空并且会导致问题。我似乎无法在 Rails 上找到任何关于它的问题。
同样,这是在 master https://github.com/carlosantoniodasilva/rails/commit/f6b71499e967e03c65d53cc890585f42f3b8aaa2 上的 PR 上修复的
更新
您可以使用 ActiveSupport
现在使用这些助手
http://api.rubyonrails.org/classes/ActiveSupport/NumberHelper.html
关于ruby - 导轨 : How do I require NumberHelper and make it work?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15733971/
我有一个令人尴尬的基本问题: 我正在研究一个处理金钱的普通老式 ruby 模型,一些类方法返回需要格式化才能显示的价格。 过去我曾使用 include ActionView::Helpers::N
我正在尝试编写一个简单的 Sinatra 东西,但我需要操作包中的 ActionView::Helpers::NumberHelper。 http://api.rubyonrails.org/clas
ActionView::Helpers::NumberHelper 方法喜欢 nubmer_with_precision 采用 precision 选项,它的默认值为 3. 我想将默认值 3 设置为
我想在我的 Sinatra View 中使用 Rails ActionView::Helpers::NumberHelper 模块。具体来说,我想使用 number_to_currency,尽管我希望
sprintf("%g", [float]) 允许我在不指定精度的情况下格式化 float ,这样 10.00 就呈现为 10 和 10.01 呈现为 10.01,依此类推。这很整洁。 在我的应用程序
我是一名优秀的程序员,十分优秀!