2015-10-31 54 views
2

我嘗試編輯用戶時試圖獲得javascript響應。我通過在表單提交時發出ajax調用來做到這一點。提交表單後呈現的頁面是javascript響應的純文本。所以,ajax工作不正常,javascript呈現爲文本。來自form_for的控制器中的Ajax javascript響應以javascript形式呈現爲純文本

修身HTML:在用戶控制器

= form_for @user, html: { multipart: true }, authenticity_token: true, :format => :js, remote: true do |form| 
     = form.label :avatar 
     = form.file_field :avatar 
     = form.submit "add an avatar!" 

更新方法:

def update 
    @user = User.find(params[:id]) 
    logger.debug request.format 
    respond_to do |format| 
      format.js { render layout: false, content_type: 'text/javascript' } 
    end 
    end 

JavaScript的響應是可見的純文本:

alert("hello"); 
+0

我認爲multipart和ajax存在問題。仔細研究一下,你可能需要找到解決辦法。 – Swards

回答

1

不幸的是,沒有簡單和普遍通過ajax發送多部分表單的方式。但你仍然可以使用這個寶石https://github.com/JangoSteve/remotipart解決問題。

+0

當我刪除:格式=>:js的request.format現在打印文本/ HTML和我得到一個ActionController :: UnknownFormat UsersController#update – user2871354

+0

你能格式化代碼嗎? – user2871354

+0

完成格式化。 – Rubyrider