Rails:我如何需要NumberHelper并使其工作? [英] Rails: How do I require NumberHelper and make it work?

查看:18
本文介绍了Rails:我如何需要NumberHelper并使其工作?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试编写一个简单的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在哪里?

谷歌对这些问题完全保持沉默。

更新:现在我得到以下信息

number_with_precision(1, :locale => 'fr')
TypeError: wrong argument type nil (expected Fixnum)

我觉得我的NumberHelper好像坏了。这不是好行为。

推荐答案

所以,在做了一些研究之后,我在Rails的主分支上发现了以下拉取请求

https://github.com/rails/rails/pull/6315

它的主要目标是将ActionView::Helpers::NumberHelperActionView移动到ActiveSupport

我还看到了一些旨在解决允许将NumberHelper作为独立组件包含的问题的已解决问题。这意味着需要进行修复或诸如此类的操作。我没有发现number_to_phone的未决问题,但问题的根源在于ActiveSupportString类添加了别名starts_with?。我不确定他们是否已经在那里发现了那个虫子。

在任何情况下,使用ActionView版本3.2.13都可以执行以下操作

require 'action_view'
include ActionView::Helpers::NumberHelper
number_with_precision 3.1
#=> "3.100"

至于number_to_phone,它仍将与当前版本断开。我现在正在做公关来解决这个问题。

编辑

至于区域设置问题,似乎如果您指定一个本地,您需要在I18n中设置正确的选项才能使其正常工作。如果不提供区域设置,则默认设置将如下所示{:separator=>".", :delimiter=>"", :precision=>3, :significant=>false, :strip_insignificant_zeros=>false},否则,散列将为空,这将导致问题。不过,我似乎在Rails上找不到任何关于它的问题。

再次修复了主https://github.com/carlosantoniodasilva/rails/commit/f6b71499e967e03c65d53cc890585f42f3b8aaa2上的PR

更新

您现在可以使用ActiveSupport来使用这些帮助器

http://api.rubyonrails.org/classes/ActiveSupport/NumberHelper.html

这篇关于Rails:我如何需要NumberHelper并使其工作?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆