私はレールアプリを持っており、デバイスビューをカスタマイズして角度付きのインタラクティブ性を追加しています。だから、私の入力は次のようになります
<input id="user_name" name="name" ng-blur="isNameBusy()" type="text">
(不要な属性はすべて省略されています)
これは、フォーム送信中のリクエストが次のようになることを意味します。
Parameters: {"utf8"=>"✓", "authenticity_token"=>"xxx", "name"=>"test", "email"=>"test@mail.com", "password"=>"[FILTERED]", "commit"=>"Sign up"}
しかし、devise はこのリクエストを理解していません。これは、devise ビューのデフォルトの入力が次のような name 属性を持っているためです:
<input id="user_name" name="user[name]" ng-blur="isNameBusy()" type="text">
<input id="user_email" name="user[email]" type="email">
リクエストは次のようになります。
Parameters: {"utf8"=>"✓", "authenticity_token"=>"xxx", "user"=>{"name"=>"test", "email"=>"test@mail.com", "password"=>"[FILTERED]"}, "commit"=>"Sign up"}
ご覧のとおり、フィールドはユーザーキーでラップされています。
もちろん、js でデフォルトのデバイス名を使用できます。
registerForm.user[name].$valid
しかし、それはとても醜く見えます!devise に私の要求を理解させるにはどうすればよいですか?