1

私は問題があります。別の名前空間のパーシャルを使用してオブジェクトをレンダリングする必要があります。

 render complain.target

現在の名前空間から部分的にレンダリングしようとします(現在は ですadmin

admin/bulletins/bulletin の一部が欠落しています...

admin/..からレンダリングする必要はありません。

のような部分パスを指定することはできません

render partial: '/bulletins/bulletin', locals: { bulletin: complain.target }

しかし、これは多態的な関連付けであり、異なる部分パスが使用されます。それを行う方法はありますか?前もって感謝します!

4

2 に答える 2

4

呼び出しでこれを達成する方法はないようですrender complain.target(Rails 5 ソースで確認)。

ただし、パーシャルの名前空間の先頭に追加することを無効にする action_view の構成オプションがあります。

     Rails.application.config.action_view.prefix_partial_path_with_controller_namespace = false

編集

今日、私は別の解決策を使用しました: 単一テーブル継承モデルをパーシャルにレンダリングする場合、レンダリング パーシャルを呼び出すときに、Rails の model_name ルックアップに基づいてローカル変数名を渡すことができます。

<%= render partial: "admin/#{object.to_partial_path}", 
           locals: { object.model_name.element => object } 
%>
于 2016-04-07T15:15:56.100 に答える
1

使用できますrender "/#{complain.target.to_partial_path}"

于 2012-11-14T09:51:28.443 に答える