2016-10-14 1 views
0

레일 4.2.7.1을 사용하고 있습니다. 여기에 설명 된대로 대소 문자를 구분하지 않는 해시를 만들려고합니다. How do I create a hash in Ruby that compares strings, ignoring case?. 나는어디에서 해시 클래스를 제외하고 파일을 레일스에 넣을 수 있습니까?

class CaseInsensitiveHash < HashWithIndifferentAccess 
    # This method shouldn't need an override, but my tests say otherwise. 
    def [](key) 
    super convert_key(key) 
    end 

    protected 

    def convert_key(key) 
    key.respond_to?(:downcase) ? key.downcase : key 
    end 
end 

으로, 파일, 응용 프로그램/활동 지원/hash_with_indifferent_access.rb을 만든하지만 난 내 콘솔을로드 할 때, 그 내가 배치합니까 해시 ...

davea$ rails console 
Loading development environment (Rails 4.2.7.1) 
2.3.0 :001 > h = CaseInsensitiveHash.new 
NameError: uninitialized constant CaseInsensitiveHash 
    from (irb):1 
    from /Users/davea/.rvm/gems/ruby-2.3.0/gems/railties-4.2.7.1/lib/rails/commands/console.rb:110:in `start' 
    from /Users/davea/.rvm/gems/ruby-2.3.0/gems/railties-4.2.7.1/lib/rails/commands/console.rb:9:in `start' 
    from /Users/davea/.rvm/gems/ruby-2.3.0/gems/railties-4.2.7.1/lib/rails/commands/commands_tasks.rb:68:in `console' 
    from /Users/davea/.rvm/gems/ruby-2.3.0/gems/railties-4.2.7.1/lib/rails/commands/commands_tasks.rb:39:in `run_command!' 
    from /Users/davea/.rvm/gems/ruby-2.3.0/gems/railties-4.2.7.1/lib/rails/commands.rb:17:in `<top (required)>' 
    from bin/rails:4:in `require' 
    from bin/rails:4:in `<main>' 

을 인식하지 내 파일을 가져 와서 프로젝트에서 픽업 할 수 있습니까?

+0

'config/initializers /'는 주로 사용되는 장소입니다 –

답변

0

나는 보통 lib/core_ext/hash.rb에 그 내용을 넣습니다. 그러나 그것은 당신에게 달려 있습니다. 내가하는 일은 다음과 같은 config/initializers/require.rb 파일을 만드는 것입니다 :

require "core_ext/hash" 
require "core_ext/array" 
... 
관련 문제