0

次のコードを使用して、(リモート AJAX 呼び出しを介して) JavaScript ファイルをレンダリングしようとしています。

respond_to do |format|
                format.js { render "like", :locals => {:media_id => media_id, :like_type => like_type}}
end

ファイルの名前は「like.js.erb」で、ファイルに標準のjavascriptアラートを入れるだけで完全に機能するため、機能することがわかっています。ファイル (like.js.erb) は次のようになります。

<% if like_type == "l" %>
    alert("liking as <%= like_type %> for media_id <%= media_id %>");
    $('like_<%= media_id %>').update("liked");
<% elsif like_type == "u" %>
    alert("unliking as <%= like_type %> for media_id <%= media_id %>");
    $('like_<%= media_id %>').update("unliked");
<% end %>

ファイルに上記のコードが含まれている場合、POST アクションは正常に完了しますが、何も返されません。複数のローカルが渡されるのが気に入らないようです。

何か案は?ありがとう!

4

1 に答える 1

1

このオプションを使用する場合は、キーをパラメーターとして指定:localsする必要があります。:partial

respond_to do |format|
                format.js { render :partial => "like", :locals => {:media_id => media_id, :like_type => like_type}}
end

また:

respond_to do |format|
                format.js { render "like", :media_id => media_id, :like_type => like_type}
end
于 2013-09-03T03:01:12.600 に答える