Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails3引擎:未加载Gems(回形针和继承的资源)_Ruby On Rails_Ruby On Rails 3_Gem_Rails Engines - Fatal编程技术网

Ruby on rails Rails3引擎:未加载Gems(回形针和继承的资源)

Ruby on rails Rails3引擎:未加载Gems(回形针和继承的资源),ruby-on-rails,ruby-on-rails-3,gem,rails-engines,Ruby On Rails,Ruby On Rails 3,Gem,Rails Engines,在我的rails3引擎文件中,我添加了: gem 'paperclip' gem 'inherited_resources' 我还将以下内容添加到我的gemspec中: s.add_dependency "paperclip" s.add_dependency "inherited_resources" 然后,我为我的引擎和客户端应用程序运行捆绑安装,并启动客户端应用程序的控制台,以便首先测试回形针,我得到: Using /Users/ynkr/.rvm/gems/ruby-1.9.2-p1

在我的rails3引擎文件中,我添加了:

gem 'paperclip'
gem 'inherited_resources'
我还将以下内容添加到我的gemspec中:

s.add_dependency "paperclip"
s.add_dependency "inherited_resources"
然后,我为我的引擎和客户端应用程序运行捆绑安装,并启动客户端应用程序的控制台,以便首先测试回形针,我得到:

Using /Users/ynkr/.rvm/gems/ruby-1.9.2-p180 with gemset rails31beta
ynkr % rails c
/Users/ynkr/.rvm/gems/ruby-1.9.2-p180@rails31beta/gems/actionpack-3.1.0.rc4/lib/action_dispatch/http/mime_type.rb:101: warning: already initialized constant YML
Loading development environment (Rails 3.1.0.rc4)
ruby-1.9.2-p180 :001 > b=Blog::Blog.first 
  Blog::Blog Load (0.2ms)  SELECT `blogs`.* FROM `blogs` LIMIT 1
 => #<Blog::Blog id: 1, user_id: 1, context_id: 2, title: "Cmd Line Blog Title", title_for_url: "cmd-line-blog-title", teaser: "This is the teaser for the command line blog", content: "Some content for the cmd line blog", created_at: "2011-06-28 06:06:55", updated_at: "2011-06-28 06:06:55"> 
ruby-1.9.2-p180 :002 > b.photos
NoMethodError: undefined method `has_attached_file' for #<Class:0x00000102a57fc8>
    from /Users/ynkr/.rvm/gems/ruby-1.9.2-p180@rails31beta/gems/activerecord-3.1.0.rc4/lib/active_record/base.rb:1078:in `method_missing'
    from /websites/gems/blog/app/models/blog/photo.rb:6:in `<class:Photo>'
    from /websites/gems/blog/app/models/blog/photo.rb:1:in `<top (required)>'
    from /Users/ynkr/.rvm/gems/ruby-1.9.2-p180@rails31beta/gems/activesupport-3.1.0.rc4/lib/active_support/dependencies.rb:452:in `load'

我的问题是为什么这些都不起作用?我的直觉是,关于引擎、名称空间和加载gem,我完全没有意识到。

您需要将引擎中的每个gem都放在初始化文件中,例如
lib//engine.rb

这里有更多的解释


您需要在初始化器文件中要求引擎中的每个gem,例如
lib//engine.rb

这里有更多的解释

class Blog::ContextsController < InheritedResources::Base
  before_filter :redirect_unless_admin
end
Started GET "/blog/contexts" for 127.0.0.1 at 2011-06-28 12:06:25 -0700

ActionController::RoutingError (uninitialized constant InheritedResources):

Rendered /Users/ynkr/.rvm/gems/ruby-1.9.2-p180@rails31beta/gems/actionpack-3.1.0.rc4/lib/action_dispatch/middleware/templates/rescues/routing_error.erb within rescues/layout (0.5ms)