2011-08-16 12 views
4

は、部分的な景色を眺めながらrender_to_stringメソッドを使用しているとき、私はコードの下レール

bizz = render_to_string(:partial => "biz_new",:layout => false) 

ActionView::MissingTemplateエラーを取得しています、私は明示的に:layout => falseを指定しているにもかかわらず、私はいつもMissingTemplateエラーを取得しています。

しかし、通常のビューのrender_to_stringは同じプロジェクトで正常に動作します。理由は何でしょうか?

スタックトレース以下

ActionView :: MissingTemplate(部分的な企業がありません/ biz_new {有する:ハンドラ=>:ERB:RJS、:ビルダー、:RHTML、:rxml]:フォーマット"/ home/ramesh/works/xxx/app/views"、 "/ home/ramesh/works/xxx/app/views"、: "/"]:ロケール=> [:en、 ramesh/works/xxx/vendor/plugins/asset_packager/app/views "):

+0

どこに 'biz_new'がありますか? – fl00r

+0

@ fl00r、ビジネスディレクトリの下で、私は上記のコードがビジネスコントローラで動作するので、ビジネスを辞めました。 – RameshVel

答えて

0

'bizs/biz_new'のような部分パスを指定しようとしましたか?

+0

ええ、同じエラー.. – RameshVel

+0

スタックトレースの一部の行を投稿してください –

+0

が更新されました。pls check – RameshVel

2

レールがファイルのフォーマットをtxtにしているようです。ファイル名は何ですか?名前を付けてみてください。

_biz_new.txt.erb 

- または -

businesses/_biz_new.txt.erb 
+0

という名前のファイル_biz_new.html.erbで始まります。 txt.erbを使う理由は何ですか? – RameshVel

+0

これは、railがフォーマットtxtのファイルを探しているようです。ちょうど愚痴、それを撃つ。 –

+0

nope。その動作していない、同じエラーを投げる – RameshVel

10

render_to_string("_biz_new", :formats => [:html], :layout => false, :locals => {:biz => @biz}) 

render_to_stringが開始下線と.html拡張子を必要としてみてください。

+0

これは私のために働いた、ありがとう! :D – MMachinegun

+0

何らかの方法でホストを取得する方法やホストを設定する方法はありますか? – Rubyrider

-1

同様の問題がありました。

私は解決策を見つけた:

render_to_string(model, :formats => [:html])

2

マイクKijewskiはあなたが部分名の先頭にアンダースコアを含めることができますが、最後に.htmlをを使用している場合あなたが得る、前述のように推奨されなくなりました。もっと簡単な方法は次のとおりです:

render_to_string(:partial => "folder_name/_partial_name", :formats => [:html], :layout => false, :locals => {:a_needed_argument_for_the_partial => @arg})