0

filedrop.jsを使用して画像をアップロードしています。application.jsファイルのコードは次のようになります:-

 $(".droparea").each(function(event){
  var game_id = $(this).attr('id')
  $(this).filedrop({
  maxfilezsize: 5,
  maxfiles: 1,
  dataType: "script",
  paraname :"custom_game[file]"
  url: "/game_plans/'+$(".dropbox").attr("rel")+'/games/'+game_id+/upload_file.js"
  })
 }

この部分は正常に機能しています。適切なパラメータを使用して適切なアクションを実行しています。

def upload_file
  # NOTE Upload_file action has been explicity written for the file upload using drag and drop
  @custom_game = CustomGame.find_or_initialize_by_id(params[:id])
  @game_plan = GamePlan.find(params[:game_plan_id])
  @custom_game.update_attributes(params[:custom_game])
  respond_to do |format|
    format.js
  end
end

upload_file.js.erb:

$("#<%=  @custom_game%>_file").html(<%= @custom_game.file%>);

しかし、それぞれのアクション、つまりupload_file.js.erbを考慮すると、javascriptコマンドを実行することはできませんが、rubyコマンドは正しく機能しています。また、ログには、パーシャルが正常にレンダリングされたことが示されています。

私のログは次のことを示しています:-

(101.8ms)  COMMIT
Rendered activities/upload_file.js.erb (0.6ms)
Completed 200 OK in 379ms (Views: 10.8ms | ActiveRecord: 106.9ms)

どこで間違いを犯しているのかわかりません。upload_file.js.erbでjqueryコマンドは実行されていませんが、rubyコマンドは正しく機能しています。

4

1 に答える 1

1
$("#<%=  @custom_game%>_file").html(<%= @custom_game.file%>);

<%= @custom_game %>@custom_game.title などを使用すると思われる CustomGame オブジェクトを返します。jQuery は $("#<#CustomGame:834793746>_file") を見つけることができないため、html は置き換えられません。

コンソールでJavaScriptを試して、手動で実行されるかどうかを確認することをお勧めします(Chromeの開発ツールを使用して)

于 2012-06-26T14:26:00.147 に答える