[前][次][番号順一覧][スレッド一覧]

rails:872

From: "Shouta Ohnishi" <s-onishi@d...>
Date: 11 Jan 2006 17:03:13 +0900
Subject: [rails:872] components下のコントローラからapp下のテンプレート(partials利用)を呼び出す

大西と申します。

componentsとpartialsを使ってアプリケーションを作成しているのですが、レンダリ
ングのパス周りがうまく解決できずに困っています。

app/views/xxx以下のテンプレートをcomponents以下のコントローラから利用したい
というイメージです。

サンプル:
#RAILS_ROOT/components/standard/top_controller.rb
class Standard::TopController < ApplicationController
  def index
    render(:file=>'/main/index' , :use_full_path=>true)
  end
end

#RAILS_ROOT/app/views/main/index.rhtml
<html>
 <body>
  <%= render_partial "left"%>
 </body>
</html>

#RAILS_ROOT/app/views/main/_left.rhtml
<div>left contents</div>

アプリの構造は、下記のような感じです。

1.RAILS_ROOT/components/standard 以下にコントローラを配置している
2.app/views/main 下のテンプレートにレンダリングする
3.テンプレートはpartialsを使い、別のテンプレートをインクルードしている

ただ単にcomponents下のコントローラからapp下のテンプレートを呼び出すだけであ
ればサンプルの通りrender(:file)で実現できるのですが、問題はテンプレートが
partialsを含んでいる点で、partialsファイル読み込み時にパスをうまく解決できず
に落ちてしまいます。

エラーメッセージに「No rhtml, rxml, rjs or delegate template found for
standard/top/_left」とあります。
partialsファイルが「standard/top/_left.rhtml」というパスに解決され、見つから
ず落ちているようです。
「main/_left.rhtml」というパスに解決されれば万事解決なのですが・・・。

何かうまい回避方法をご存知の方はいらっしゃいませんでしょうか??


--
ML: rails@r...
使い方: http://QuickML.com/

[前][次][番号順一覧][スレッド一覧]

->     872 2006-01-11 09:03 [s-onishi@d...       ] components下のコントローラからapp下のテンプレート(partials利用)を呼び出す
       873 2006-01-11 09:29 ┗[s-onishi@d...       ]