Изучая руководство Active Support Core , похоже, что некоторые из них недоступны. Вот дословный вывод из новой сессии:
$ rails --version
Rails 3.1.3
$ rails console
[1] pry(main)> [].prepend(10)
NoMethodError: undefined method `prepend' for []:Array
from (pry):1:in `<main>'
[2] pry(main)> [].unshift(10)
=> [10]
[3] pry(main)> %w(a b c d).append('e')
NoMethodError: undefined method `append' for ["a", "b", "c", "d"]:Array
from (pry):3:in `<main>'
[4] pry(main)> %w(a b c d) << 'e'
=> ["a", "b", "c", "d", "e"]
[5] pry(main)> require 'active_support/core_ext/array'
=> false
Ничто не указывает на то, что append
и prepend
устарели или только передовые, так что здесь происходит?
Похоже, что они на самом деле не являются частью Rails 3.1.3, потому что они терпят неудачу:
$ grep 'prepend\|append' ~/.rvm/gems/ruby-1.9.3-p0@project_name/gems/activesupport-3.1.3/lib/active_support/core_ext/array/*
$ ls ~/.rvm/gems/ruby-1.9.3-p0@taclom/gems/activesupport-3.1.3/lib/active_support/core_ext/array/prepend_and_append.rb