2013-06-18 82 views
0

我在創建用戶表單中使用了recapcha gem。表單正在通過ajax使用data-remote = true屬性,然後創建一個create.js.erb模板。ajax請求後未在表單中呈現ReCaptcha輸入

的想法是後,提交表單:

  1. 如果用戶創建成功渲染一個適當的消息
  2. 如果用戶創建成功再次呈現形式 與相應的錯誤

問題是,當出現錯誤(例如錯誤的recaptcha代碼) - 回顧沒有渲染輸入字段。

現在,在create.js.erb文件我只有以下行:

$('#b-register').html('<%=j render partial: 'security_users/sign_in' %>'); 

爲什麼當我不使用當地人@securirty_user對象自動傳回的部分? 當我渲染出最初使用的部分錯誤時,爲什麼recaptcha輸入丟失?

回答

0

如果你想有一個使用ajax的recapthca的「登錄」表單,你不應該重新渲染表單。

你應該做的是:

  1. create.js.erb視圖來處理Ajax請求,並在控制器添加format.js

  2. 在新的視圖實例,從而持有錯誤這樣的JavaScript對象:

var current_errors = <%= raw @security_user.errors.to_json %>;

然後你可以自由選擇要處理的錯誤 - 添加新元素顯示錯誤的文字或其他的,但如果只有一個錯誤:

  1. 清除密碼字段

  2. 刷新的ReCaptcha這樣的:

Recaptcha.reload();