2010-01-01 12 views
6

UPDATE: krępuj się dać mi głosy negatywne ponieważ problem było to, że nazwał _stylesheet.html.erb plik & nie _stylesheets.html. erb. Myślałem, że sprawdziłem pisownię, ale wyraźnie nie. Przepraszam za marnowanie czasu wszystkich i doceniam twój wkład.Problemy renderowania * bardzo * proste częściowe w * bardzo * proste aplikacji

Cześć,

uczę szyn i zacząłem z Ruby on Rails Tutorial - Learn Rails by Example by Michael Hartl. Jest to książka w toku, którą hojnie włożył online. Obecnie jestem na partials section i widzę dziwny problem, który próbuję rozwiązać od zeszłej nocy. I postępuj zgodnie z instrukcjami zawartymi w sekcji partials, ale otrzymuję następujący błąd:

ActionView::MissingTemplate in Pages#home 

Showing app/views/layouts/application.html.erb where line #6 raised: 

Missing layout layouts/_stylesheets.erb in view path app/views 
Extracted source (around line #6): 

3: <html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"> 
4: <head> 
5:  <title><%= title %></title> 
6:  <%= render 'layouts/stylesheets' %> 
7: </head> 
8: <body> 
9:  <div class="container"> 

Oto ślad:

/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_view/paths.rb:66:in `find_template' 
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_view/partials.rb:236:in `_unmemoized__pick_partial_template' 
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/memoizable.rb:84:in `_pick_partial_template' 
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_view/partials.rb:184:in `render_partial' 
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_view/base.rb:276:in `render' 
/media/documents/Dropbox/Projects/rails/sample_app/app/views/layouts/application.html.erb:6:in `_run_erb_app47views47layouts47application46html46erb' 
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_view/renderable.rb:34:in `send' 
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_view/renderable.rb:34:in `render' 
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_view/base.rb:306:in `with_template' 
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_view/renderable.rb:30:in `render' 
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_view/template.rb:205:in `render_template' 
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_view/base.rb:265:in `render' 
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_view/base.rb:352:in `_render_with_layout' 
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_view/base.rb:262:in `render' 
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/base.rb:1250:in `render_for_file' 
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/base.rb:945:in `render_without_benchmark' 
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/benchmarking.rb:51:in `render' 
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/core_ext/benchmark.rb:17:in `ms' 
/usr/lib/ruby/1.8/benchmark.rb:308:in `realtime' 
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/core_ext/benchmark.rb:17:in `ms' 
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/benchmarking.rb:51:in `render' 
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/base.rb:1326:in `default_render' 
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/base.rb:1332:in `perform_action_without_filters' 
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/filters.rb:617:in `call_filters' 
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/filters.rb:610:in `perform_action_without_benchmark' 
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue' 
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/core_ext/benchmark.rb:17:in `ms' 
/usr/lib/ruby/1.8/benchmark.rb:308:in `realtime' 
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/core_ext/benchmark.rb:17:in `ms' 
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue' 
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/rescue.rb:160:in `perform_action_without_flash' 
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/flash.rb:146:in `perform_action' 
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/base.rb:532:in `send' 
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/base.rb:532:in `process_without_filters' 
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/filters.rb:606:in `process' 
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/base.rb:391:in `process' 
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/base.rb:386:in `call' 
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/routing/route_set.rb:437:in `call' 
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/dispatcher.rb:87:in `dispatch' 
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/dispatcher.rb:121:in `_call' 
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/dispatcher.rb:130:in `build_middleware_stack' 
/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/query_cache.rb:29:in `call' 
/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/query_cache.rb:29:in `call' 
/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/connection_adapters/abstract/query_cache.rb:34:in `cache' 
/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/query_cache.rb:9:in `cache' 
/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/query_cache.rb:28:in `call' 
/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/connection_adapters/abstract/connection_pool.rb:361:in `call' 
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/string_coercion.rb:25:in `call' 
/usr/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/head.rb:9:in `call' 
/usr/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/methodoverride.rb:24:in `call' 
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/params_parser.rb:15:in `call' 
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/session/cookie_store.rb:93:in `call' 
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/failsafe.rb:26:in `call' 
/usr/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/lock.rb:11:in `call' 
/usr/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/lock.rb:11:in `synchronize' 
/usr/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/lock.rb:11:in `call' 
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/dispatcher.rb:114:in `call' 
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/reloader.rb:34:in `run' 
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/dispatcher.rb:108:in `call' 
/usr/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/rails/rack/static.rb:31:in `call' 
/usr/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/urlmap.rb:46:in `call' 
/usr/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/urlmap.rb:40:in `each' 
/usr/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/urlmap.rb:40:in `call' 
/usr/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/rails/rack/log_tailer.rb:17:in `call' 
/usr/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/content_length.rb:13:in `call' 
/usr/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/chunked.rb:15:in `call' 
/usr/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/handler/mongrel.rb:64:in `process' 
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:159:in `process_client' 
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:158:in `each' 
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:158:in `process_client' 
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `run' 
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `initialize' 
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `new' 
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `run' 
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in `initialize' 
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in `new' 
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in `run' 
/usr/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/handler/mongrel.rb:34:in `run' 
/usr/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/commands/server.rb:111 
/usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' 
/usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' 
script/server:3 

Co ciekawe dla mnie jest to, że mam inne projekty lokalnie, które z powodzeniem renderowanie partials . Więc wiem, że to nie jest problem z wersją rails (drugi projekt, który działa, nie ma zamrożonych szyn). Sprawdziłem również, czy moje części są w aplikacjach/widokach/układach i że mają podkreślenie przed nazwą, a ich rozszerzenia są we właściwej kolejności (.html.erb).

Oto kontroler:

class PagesController < ApplicationController 
    def home 
    @title = "Home" 
    end 

    def contact 
    @title = "Contact" 
    end 

    def about 
    @title = "About" 
    end 

    def help 
    @title = "Help" 
    end 
end 

To dość standardowe rzeczy i nie jestem pewien, dlaczego jej nie działa, aby być uczciwym. Każda pomoc w tej sprawie jest ogromnie doceniana.

Dzięki!

Ashish

Odpowiedz

1

Ponieważ próbujesz renderować częściowe, czy twój częściowy plik jest poprzedzony znakiem podkreślenia?

_stylesheets.html.erb 
+0

@Nick - Yup. Sprawdziłem to pierwsze. Moje częściowe nazywa się _stylesheets.html.erb i znajduje się w app/views/layouts. – tundal45

+0

Hmm, żeby pokryć wszystkie bazy, czy próbowałeś ponownie uruchomić aplikację? Ostatnio miałem pewne problemy z moimi programami deweloperskimi, które nie przetwarzały nowych rzeczy bez restartu w wersji 2.3.5. – nowk

+0

@nowk - Przykro mi, że nie wspomniałem o tym wcześniej, ale spróbowałem ponownie uruchomić serwer. Nawet zrestartowałem komputer (zły nawyk z okien), ale bez powodzenia. – tundal45

3

ja naprawdę nie wiem, co Szyny wersji używasz ale proponuję jedną z następujących czynności:

  1. dodać: Częściowa opcję: <%= render :partial=>'layouts/stylesheets' %> (wierzę, że to będzie działać na jeden ty)
  2. Zmień nazwę pliku stylesheets.html.erb na stylesheets.erb (nie jestem z tego zadowolony, ale to może ci pomóc).
+0

Myślę, że używa wersji 2.3.5. Spójrz na jego dzienniki. Myślę, że: partial => 'layouts/stylesheets', o którym wspomniałeś, załatwiłoby sprawę temu facetowi. – DJTripleThreat

+0

@khelll - Dzięki za szybką odpowiedź. Nie wspominałem o tym, że wypróbowałem także explicite: partial => call z niewielkim powodzeniem. Próbowałem również zmienić nazwę pliku na stylesheets.erb zamiast stylesheets.html.erb i to nie działało tak dobrze. Drugi, który nie działał, był oczekiwany, ponieważ jest sprzeczny z przewodnikami po prowadnicach i innymi dostępnymi dokumentami. @DJTripleThreat jest poprawny. Używam torów w wersji 2.3.5 i używam programu ruby ​​1.8.7 (2009-06-12 patchlevel 174). Czy mogę podać jakieś dodatkowe informacje, które mogą wskazywać, dlaczego tak się dzieje? – tundal45

+0

@khell & @DJTripleThreat: Przepraszam, że marnujesz swój czas. Zdałem sobie sprawę, że nazwałem plik _stylesheet.html.erb, a nie _stylesheets.html.erb. Rookie, wiem! – tundal45