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

上传文件.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 %>返回 CustomGame 对象,我认为您应该在其中使用 @custom_game.title 或其他东西。jQuery 找不到 $("#<#CustomGame:834793746>_file") 所以 html 没有被替换。

您可能想在控制台中尝试 javascript 以检查它是否手动执行(我自己使用 chrome 的开发工具)

于 2012-06-26T14:26:00.147 回答