4

私は、会話がメッセージと画像の両方で構成されている STI 関係を持っています。

今、それらをレンダリングするときは、次を使用します。

<%= render conversation %>

これは完璧に機能します。指定されたオブジェクトの指定されたテンプレートを見つけてレンダリングします。

今、私のモバイル サイトで同じことを使用したいのですが、次のように言う必要があります。

/mobile/message/_message.html.erb

それ以外の

/message/_message.html.erb

だから私のコントローラーで私は言った:

if mobile?
  prepend_view_path "mobile"
end

どちらが呼び出され、「ビューパスを先頭に追加」します。これは、実行時に機能していることがわかります。

raise view_paths.inspect

しかし、今私がするとき

<%= render conversation %>

パーシャルのデフォルトの場所、つまり /views/ をまだ探しています

4

1 に答える 1

-1

まあ、これはうまくいくはずですが、悲惨なほどエレガントではありません:

<% conversation.each do |c| %>
  <% c_class = c.class.to_s.downcase.underscore %>
  <%= render :partial => "mobile/#{c_class}/#{c_class}", :object => c %>
<% end %>
于 2013-04-02T20:19:29.980 に答える