Rails 3.0では、パーシャルの名前が変数に格納される部分をレンダリングすることは可能ですか?私は似た何かをしようとしています変数を使用してレンダリングするためのレールの名前を指定する
:
<%= escape_javascript(raw render :partial => @partial_name, :locals => { :value => @value})%>
詳細私のアプリケーションで
を例は、私が持って言うことができますのために、私は、マルチテーブル継承を使用してモデルのセットを持っていると更新ベースモデル「カップケーキ」、「AwesomeCupcake」や「AlrightCupcake」などの変形があります。
これらのモデルのそれぞれは、情報を表示するための独自のカスタムパーシャルを持ち、 '_awesome_cupcake'と '_alright_cupcake'の命名規則に従います。
ページには、コントローラがパラメータを受け取り、どの部分をレンダリングするかを動的に派生させたいカップケーキの各タイプへのリンクがあります。以下は、(new.js.erbファイル内で) '@partial_name'を 'awesome_cupcake'のようなものに置き換えた場合に必要です。
application.js
$('#set_cupcake').click(function() {
$.getScript('/cupcakes/new.js?cupcake_type=awesome');
});
cupcakes_controller.rb
def new
cupcake_type = "#{params[:cupcake_type].capitalize}Cupcake"
if Object.const_defined? cupcake_type
@cupcake = cupcake_type.constantize.new
@partial_name = "#{params[:cupcake_type]}_cupcake"
end
end
ビュー/カップケーキを:ここで
は少しより多くの情報が私のコンポーネントがレイアウトされているかにあります/new.js.erb
$('#cupcakes')
.append("<%= escape_javascript(raw render :partial => @partial_name, :locals => { :cupcake => @cupcake }) %>")
あなたは何を持っていますか? – jtbandes
私の状況に関する追加情報を追加しました。ありがとう! – jwarzech