2011-01-20 29 views
0

我遵循了「AJAX file uploads in Rails using attachment_fu and responds_to_parent」文章中的說明。在我的情況下,我正在使用Ruby on Rails 3和Paperclip。使用'responds_to_parent'與iframe和AJAX上傳文件時出現的問題

我做什麼是以下幾點:


我已經安裝在終端運行此命令的 'respons_to_parent' 插件:

rails plugin install git://github.com/itkin/respond_to_parent.git 

安裝後,我重新啓動Apache。


在我看來,我有:

<%= form_for(@user, :html => { :multipart => true, :target => 'upload_frame' }) do |f| %> 
    <%= f.file_field :avatar %> 
    <%= f.submit "Submit" %> 
<% end %> 

<div id="test">Here is a test</div> 
<div id="stuff">Here is some stuff</div> 
<iframe id='upload_frame' name="upload_frame" style="width:1px;height:1px;border:0px" ></iframe> 

在我的控制器我有

def action 
    respond_to do |format| 
     ... 
     format.js { 
     responds_to_parent do 
      render :update do |page| 
      page.replace_html :test, "This is the resulting test" 
      page << "alert($('stuff').innerHTML)" 
      end 
     end 
     end 
    end 
    end 

試圖提交表單,所有有關的文件上傳作品(Paperclip句柄correclty文件,...)和日誌文件中沒有e rrors。

只有不工作的東西是AJAX部分。在這個例子中

page.replace_html :test, "This is the resulting test" 
page << "alert($('stuff').innerHTML)" 

不更新頁面(BTW:這些地方的生效,在「主視圖」或「iframe的看法」?)。如果我嘗試刪除'respons_to_parent'語句或者將它們放入'action.js.rjs'文件中,它也不起作用。

我在哪裏錯了?

回答

0

解決

我忘了添加:url => users_account_path +. "js"。所以這個看法變成:

<%= form_for(@user, :url => users_account_path +. "js", :html => { :multipart => true, :target => 'upload_frame' }) do |f| %>