2012-03-30 8 views
1

私はショッピングカートのモデルを持つレールアプリ(レール3.1.3)を持っています。レイアウトにショッピングカートの要約を表示したいので、部分的なビュー/ carts/_cart.html.hamlを作成しました。私のアプリは正常に動作しており、すべてのビューでカートを部分的にレンダリングしていました。しかし、私がdevise 2.0をインストールしたときには、devise viewのために部分的なものが見つけられなくなりました。私は工夫ビューを呼び出すようにしようとしたときに代わりに、私は次のエラーコードを参照してくださいになります。devise 2.0を使用しているときに不足している部分があります。w Rails 3.1.3

ActionView::Template::Error (Missing partial views/carts/cart with {:handlers=>[:erb, :builder, :coffee, :haml], :formats=>[:html], :locale=>[:en, :en]}. Searched in: 
    * "/Users/cameronnorgate/Web Development/Practice Apps/1-Camerons Tea/pgktea/app/views" 
    * "/Users/cameronnorgate/.rvm/gems/[email protected]/gems/devise-2.0.4/app/views" 

あなたが見ることができるように、それはアプリ/ビューに部分を検索しますが、すべての道に入りません'cart'フォルダを検索して 'cart'の部分を探します。

%body{:class => params[:controller]} 
    .master_container 
    .master_header 
     .inner_header 
     .cart 
      = render :partial => 'views/carts/cart', :object => @cart 

誰もが時に工夫ビューの内側部分をレンダリングするために私のコールが発見されていない理由を私は理解するのに役立ちます:私は、レイアウトビューで持っていたコードは(下記参照)の正確なパスを指定したので、これは、奇妙です?

私がこれに対して行った短期的な修正は、部分的なコードを完全なレイアウトファイルに戻すことです - 今は工夫する必要はなく、すべてが機能します...しかし理想的ではないし、私のコードをアップ。

ありがとうございます!

答えて

2

あなただけで部分的に指定することができる必要があります:あなたの定義の

= render :partial => 'carts/cart', :object => @cart 

views/一部は、おそらくそれを投げています。 app/viewsが暗示されているので、views/carts/cartと指定すると、の下にviewsというディレクトリが見つからない可能性があります。

+0

ニース - それでした。ありがとうございました! –

1

このページは他のページからアクセスできます。 URLが元であれば、他のモデルでは、このページが開いている場合は、その後'carts/cart'は次のように使用することはできませんので、その後

= render :partial => '/carts/cart', :object => @cart

、正しい方法です。 'localhost:3000/products'このページには部分的なエラーがありますので、/が問題を解決し、その他の回答として'views'は不要です。

関連する問題