2013-08-30 26 views
0

我有一個Rails應用程序,並定製設計視圖添加他們與角度的一些交互性。所以,我投入的樣子讓設計瞭解自定義請求

<input id="user_name" name="name" ng-blur="isNameBusy()" type="text"> 

(所有不必要的atributtes省略)

這意味着,請求在發送形式會是什麼樣子:

Parameters: {"utf8"=>"✓", "authenticity_token"=>"xxx", "name"=>"test", "email"=>"[email protected]", "password"=>"[FILTERED]", "commit"=>"Sign up"} 

但設計不理解此請求,默認在設計視圖中輸入具有名稱屬性,如:

<input id="user_name" name="user[name]" ng-blur="isNameBusy()" type="text"> 
<input id="user_email" name="user[email]" type="email"> 

d要求的樣子:

Parameters: {"utf8"=>"✓", "authenticity_token"=>"xxx", "user"=>{"name"=>"test", "email"=>"[email protected]", "password"=>"[FILTERED]"}, "commit"=>"Sign up"} 

你看,字段被包裹在用戶關鍵。

當然,我可以使用默認的設計在我的js的名稱,如

registerForm.user[name].$valid 

但它看起來這麼難看! 如何讓設計理解我的要求?

回答

0

如果你不想改變你的輸入字段的名稱屬性,像這樣:

<input id="user_name" name="user[name]" ng-blur="isNameBusy()" type="text"> 

您必須覆蓋默認設計控制器,你可以找到這裏的主人:https://github.com/plataformatec/devise/blob/master/app/controllers/devise/sessions_controller.rb

然後根據您的自定義參數進行修改。

此答案僅用於管理會話,否則用戶模型的「經典」控制器無問題(例如創建新用戶)。

+0

是的,會話/註冊控制器。 我知道重寫設計控制器,但不知道如何讓他沒有**用戶**鍵讓我的參數。這就是問題 –

+0

@justso您的表單是用於創建新用戶還是登錄? – damoiser

+0

上面的表單是用於登錄的,但我也有相同的註冊表單問題。 –