Приложение Ruby on Rails не запускается в производственном режиме - PullRequest
1 голос
/ 12 мая 2010

Все отлично работает в режиме разработки, но когда я пытаюсь запустить свое приложение в рабочем режиме (RAILS_ENV = рабочий сценарий / сервер), я получаю следующую ошибку:

/opt/ruby1.8/lib/ruby/gems/1.8/gems/searchlogic-2.4.19/lib/searchlogic/named_scopes/conditions.rb:81:in `method_missing': protected method `scope' called for #<Class:0x7f41de524410> (NoMethodError)                                                                                               
        from /opt/ruby1.8/lib/ruby/gems/1.8/gems/searchlogic-2.4.19/lib/searchlogic/named_scopes/association_conditions.rb:19:in `method_missing' 
        from /opt/ruby1.8/lib/ruby/gems/1.8/gems/searchlogic-2.4.19/lib/searchlogic/named_scopes/association_ordering.rb:27:in `method_missing'   
        from /opt/ruby1.8/lib/ruby/gems/1.8/gems/searchlogic-2.4.19/lib/searchlogic/named_scopes/ordering.rb:30:in `method_missing'               
        from /opt/ruby1.8/lib/ruby/gems/1.8/gems/searchlogic-2.4.19/lib/searchlogic/named_scopes/or_conditions.rb:28:in `method_missing'          
        from /opt/ruby1.8/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/base.rb:1959:in `method_missing_without_paginate'           
        from /opt/ruby1.8/lib/ruby/gems/1.8/gems/will_paginate-2.3.12/lib/will_paginate/finder.rb:170:in `method_missing'                         
        from /opt/ruby1.8/lib/ruby/gems/1.8/gems/acts_as_commentable-3.0.0/lib/comment_methods.rb:12:in `included'                                
        from .../app/models/comment.rb:2:in `include'                                                           
        from .../app/models/comment.rb:2                                                                        
        from /opt/ruby1.8/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'                                          
        from /opt/ruby1.8/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'...

Теперь мне кажется, что причиной этого является камень act_as_commentable. Но как же, в режиме разработки все работает нормально.

Ответы [ 2 ]

1 голос
/ 12 мая 2010

Я нашел ошибку благодаря комментарию fl00r:

show comment.rb (вокруг строки 2)

Строка 2 в comment.rb была include ActsAsCommentable::Comment,Это показалось мне немного странным, поэтому я взглянул на официальную документацию для act_as_commentable.Это была проблема.Это должно было быть acts_as_commentable вместо этого.Должно быть, скопировал его откуда-то.

Тем не менее, остается загадкой, как это могло бы работать в режиме разработки.Из-за кеширования классов, упомянутого annaswims?

1 голос
/ 12 мая 2010

в режиме разработки классы загружаются по мере необходимости. В производстве они кэшируются при запуске рельсов.

...