Ruby on rails 在RubyonRails中,在;gem安装<;gem_name>&引用;,如何使其扩展数组,或使用其类方法?

Ruby on rails 在RubyonRails中,在;gem安装<;gem_name>&引用;,如何使其扩展数组,或使用其类方法?,ruby-on-rails,rubygems,bundler,natural-sort,Ruby On Rails,Rubygems,Bundler,Natural Sort,小结:在我安装了gem之后,我如何让它扩展Arraygem可以做什么 详情: 我看到了“自然语言排序”的宝石,它是 所以我使用Ruby 1.9.2和Rails 3.0.6,我添加了一行 gem 'naturalsort' require 'natural_sort_kernel' 进入Gemfile,进行捆绑安装并重新启动服务器,但由于某些原因,现在我仍然无法执行 NaturalSort::naturalsort ['a', 'b', 'c', 'd', 'A', 'B', 'C',

小结:在我安装了
gem
之后,我如何让它扩展
Array
gem可以做什么


详情:

我看到了“自然语言排序”的宝石,它是


所以我使用Ruby 1.9.2和Rails 3.0.6,我添加了一行

gem 'naturalsort'
require 'natural_sort_kernel'
进入
Gemfile
,进行
捆绑安装
并重新启动服务器,但由于某些原因,现在我仍然无法执行

NaturalSort::naturalsort ['a', 'b', 'c', 'd', 'A', 'B', 'C', 'D']
在我的助手文件中?怎样才能做到呢

另外,如果只是扩展数组就好了,这样就可以通过
arr.natural\u sort
来完成,但我必须添加行

gem 'naturalsort'
require 'natural_sort_kernel'

到辅助文件的开头。好的一面是它可以工作,但是在每个地方都有
require
有点混乱。有没有一种方法可以让它工作,可能是通过修改
Gemfile
或其他东西?

下面的rail插件就是这样的


下面的rail插件就是这样


在您的
gem文件中
写入

gem 'naturalsort', :require => 'natural_sort_kernel'
这应该能奏效


希望这有帮助。

在您的
Gemfile
中编写

gem 'naturalsort', :require => 'natural_sort_kernel'
这应该能奏效



希望这有帮助。

您可以将require
行'natural\u sort\u kernel'
添加到config/initializers/中名为natural\u sort\u kernel.rb的文件中,但在
config/initializers
中,没有名为
natural\u sort\u kernel.rb的文件。。。有一些文件,例如
session\u store.rb
。。。如果我做了
查找-name*natural*
在我的Rails项目文件夹中,它没有显示任何文件。我还尝试将它添加到
config/environment.rb
——在加载
Rails
的行之后添加
要求“natural\u sort\u kernel”
要求文件。展开路径(“../application',\uu File\uu)
,它也可以工作。。。但是什么是正确的方法呢?您只需在config/initializers下创建一个名为natural_sort_kernel.rb的文件,rails将执行您放在该目录下的任何文件。只要把你的require语句放在那个文件里,一切都会正常的。在我看来,这是最好的方法。顺便说一句,nathanvda的解决方案也很有效,它看起来相当优雅。你只需将这行代码require
“natural\u sort\u kernel”
添加到config/initializers/中名为natural\u sort\u kernel.rb的文件中,但在
config/initializers
中,没有名为
natural\u sort\u kernel.rb的文件。。。有一些文件,例如
session\u store.rb
。。。如果我做了
查找-name*natural*
在我的Rails项目文件夹中,它没有显示任何文件。我还尝试将它添加到
config/environment.rb
——在加载
Rails
的行之后添加
要求“natural\u sort\u kernel”
要求文件。展开路径(“../application',\uu File\uu)
,它也可以工作。。。但是什么是正确的方法呢?您只需在config/initializers下创建一个名为natural_sort_kernel.rb的文件,rails将执行您放在该目录下的任何文件。只要把你的require语句放在那个文件里,一切都会正常的。在我看来,这是最好的方法。顺便说一句,nathanvda的解决方案也很有效,而且它看起来相当优雅,因此插件将自动扩展
阵列
gem
不能有类似的功能吗?所以插件会自动扩展
数组
gem
不能有类似的能力吗?太神奇了!它是有效的。。。你怎么知道的?它是Bundler文档的一部分吗?如果require名称与gem名称相同,则通常不需要它。例如,对于某些gem,您必须显式地指定它。它确实存在于bundler文档中:任何人都知道一种通过编程确定require名称的方法,比如gem的规范(rubygems gem::classes中的任何内容)?太棒了!它是有效的。。。你怎么知道的?它是Bundler文档的一部分吗?如果require名称与gem名称相同,则通常不需要它。例如,对于某些gem,您必须显式地指定它。它确实在bundler文档中:有谁知道一种通过编程确定require名称的方法,比如从gem的规范(rubygems gem::classes中的任何内容)中?