2012-03-28 10 views
0

Devitsが提供するedit_user_registration_pathに行くと、私は電子メールとユーザー名のようなフィールドを持っています。があらかじめ入力されています。Devise編集アカウント情報

私は、従属モデルの追加のフィールドを含む編集ユーザー情報のための同様のフォームを持つカスタムユーザープロファイルページを作成したいと思います。そして、私はフィールドがの事前に入力されたしたい。 どうすればいいですか?工夫によって提供さ

デフォルトのフォームは:

<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :method => :put }) do |f| %> 
    <%= devise_error_messages! %> 

    <div><%= f.label :email %><br /> 
    <%= f.email_field :email %></div> 

    <div><%= f.label :username %><br /> 
    <%= f.text_field :username %></div> 

    <div><%= f.label :password %> <i>(leave blank if you don't want to change it)</i><br /> 
    <%= f.password_field :password, :autocomplete => "off" %></div> 

    <div><%= f.label :password_confirmation %><br /> 
    <%= f.password_field :password_confirmation %></div> 

    <div><%= f.label :current_password %> <i>(we need your current password to confirm your changes)</i><br /> 
    <%= f.password_field :current_password %></div> 

    <div><%= f.submit "Update" %></div> 
<% end %> 

答えて

3

入れ子に使用することは、あなたが他の依存のモデルを持っている場合、あなたはhas_manyと同様に、これらのモデル間の関係を追加することができ、あなたの工夫のユーザーモデルでは

属性belongs_to

考案のユーザモデル::あなたがfields_for使用することができ、あなたの形で続いて

accepts_nested_attributes_for :name_of_other_model

これを行います。 fields_for docs

はここでも、このhere

+0

の偉大railscastだお返事をいただき、ありがとうございます。それは私が欲しいものです。そして、あらかじめ満たされた畑はどうですか?上記のフォームを私のカスタムビューに配置すると、デフォルトのユーザ作成ページとは異なり、フィールドはあらかじめ入力されていません。 –

+0

編集者が既に存在する場合は、編集ビューでデータベースに関連付けられているフィールドが入力されます。そのスクリーンキャストでは、新しいモデルオブジェクトを作成することしかできませんでしたが、質問を編集するときに戻ると、編集可能なテキストフィールドに情報が残ります。ユーザー作成時にこれらのフィールドに何かを追加したい場合は、データに追加する属性の名前を付けたメソッドをモデルに追加します。追加したいデータまで探したい場合は、その情報で私の答えを更新してください。 – digicazter

+0

すべて素晴らしいです。詳細な説明をいただきありがとうございます。 –

関連する問題