2015-11-13 156 views
0

上访问回形针模块方法,我希望访问有权访问我的Rails应用程序配置的S3桶s3_bucket方法。轨控制台

综观回形针源代码我可以看到,是下回形针::存储:: S3(source code)模块。

config/environments/development.rb

我已经在每个环境中配置回形针

config.paperclip_defaults = { 
    :storage => :s3, 
    # :s3_host_name => 'REMOVE_THIS_LINE_IF_UNNECESSARY', 
    :bucket => 'educartis-development', 
    s3_host_alias: "educartis-production.s3.amazonaws.com", 
    url: ":s3_alias_url" 
    } 

而这就是我从bundle exec rails c尝试:

irb(main):008:0> Paperclip::Storage::S3.bucket_name 
NoMethodError: undefined method `bucket_name' for Paperclip::Storage::S3:Module 
    from (irb):8 
    from /Library/Ruby/Gems/2.0.0/gems/railties-4.2.0/lib/rails/commands/console.rb:110:in `start' 
    from /Library/Ruby/Gems/2.0.0/gems/railties-4.2.0/lib/rails/commands/console.rb:9:in `start' 
    from /Library/Ruby/Gems/2.0.0/gems/railties-4.2.0/lib/rails/commands/commands_tasks.rb:68:in `console' 
    from /Library/Ruby/Gems/2.0.0/gems/railties-4.2.0/lib/rails/commands/commands_tasks.rb:39:in `run_command!' 
    from /Library/Ruby/Gems/2.0.0/gems/railties-4.2.0/lib/rails/commands.rb:17:in `<top (required)>' 
    from /Library/Ruby/Gems/2.0.0/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:274:in `require' 
    from /Library/Ruby/Gems/2.0.0/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:274:in `block in require' 
    from /Library/Ruby/Gems/2.0.0/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:240:in `load_dependency' 
    from /Library/Ruby/Gems/2.0.0/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:274:in `require' 
    from /Users/borjagvo/MyStuff/webdev/Work/Gemfeed/dev/repos/educartis/bin/rails:8:in `<top (required)>' 
    from /Library/Ruby/Gems/2.0.0/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:268:in `load' 
    from /Library/Ruby/Gems/2.0.0/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:268:in `block in load' 
    from /Library/Ruby/Gems/2.0.0/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:240:in `load_dependency' 
    from /Library/Ruby/Gems/2.0.0/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:268:in `load' 
    from /Library/Ruby/Gems/2.0.0/gems/spring-1.4.0/lib/spring/commands/rails.rb:6:in `call' 
    from /Library/Ruby/Gems/2.0.0/gems/spring-1.4.0/lib/spring/command_wrapper.rb:38:in `call' 
    from /Library/Ruby/Gems/2.0.0/gems/spring-1.4.0/lib/spring/application.rb:183:in `block in serve' 
    from /Library/Ruby/Gems/2.0.0/gems/spring-1.4.0/lib/spring/application.rb:156:in `fork' 
    from /Library/Ruby/Gems/2.0.0/gems/spring-1.4.0/lib/spring/application.rb:156:in `serve' 
    from /Library/Ruby/Gems/2.0.0/gems/spring-1.4.0/lib/spring/application.rb:131:in `block in run' 
    from /Library/Ruby/Gems/2.0.0/gems/spring-1.4.0/lib/spring/application.rb:125:in `loop' 
    from /Library/Ruby/Gems/2.0.0/gems/spring-1.4.0/lib/spring/application.rb:125:in `run' 
    from /Library/Ruby/Gems/2.0.0/gems/spring-1.4.0/lib/spring/application/boot.rb:18:in `<top (required)>' 
    from /Library/Ruby/Site/2.0.0/rubygems/core_ext/kernel_require.rb:54:in `require' 
    from /Library/Ruby/Site/2.0.0/rubygems/core_ext/kernel_require.rb:54:in `require' 

为什么给undefined

回答

0

它看起来像你这样复制从某处在互联网上,包括他们的提示(它窒息的pry(main)>部分)。当您启动控制台,只需输入:

Paperclip::Storage::S3.bucket_name 

已完成提示的话,应该是这样的:

irb(main):004:0> Paperclip::Storage::S3.bucket_name 
+0

抱歉,但它是我的。我通常使用Pry。我编辑它的运行结果没有Pry。 – borjagvo

+0

@borjagvo你如何配置Paperclip?它是全局配置还是每个模型? – Undo

+0

刚刚编辑了关于它的更多细节的问题。 – borjagvo