2012-02-04 10 views
0

私はレールアプリを作成しようとしています。レール付きのサイトを作成し、ユーザープロファイルとデベロッパーでの指導が必要

これまでのところ、私は、デバイスの自動化システムをセットアップしました。ユーザーモデルを作成しました。私はページモデルとコントローラを持っています。今私はどのように私はユーザープロファイルを作成するのだろうか?

また、ユーザーの名前、メールなどの値を取得するにはどうすればよいですか?私は何を生み出すべきですか?ユーザーコントローラーまたはモデルを生成する場合、ユーザーがdeviseを使用してサインアップすると、ユーザーの電子メールのような値を得ることができます。

+2

をフィールドを追加することを決定した場合

Page author is <%= @page.user.user_profile.name %> 

か、とロールはcancanをチェックアウトする、それは素晴らしいです! –

+0

ありがとう、私は心にそれを持っていた:) –

答えて

0

devise(例:User)によって生成された、モデルに必要なすべてのフィールドを追加できます。あなたが別のモデル(のUserProfile)内のすべてのデータを保持したい場合は、has_oneの/ belongs_toの関連付けを作成する必要があります。

class User < ActiveRecord::Base 
    has_one :user_profile 
    # ... Some other stuff here 
end 

class UserProfile < ActiveRecord::Base 
    belongs_to :user 
    # ... 
end 

することができますのUserProfileのための電子メールを取得するには、次からのUserProfileを取得するには

profile = UserProfile.first 
email = profile.user.email 

をUserオブジェクト:

user = User.first 
profile = user.user_profile 

あなたはhas_manyの/ belongs_toの関連付けを使用する必要がありますページ作成者についての情報を保存することを可能にするには:

あなたのような著者を表示することができますモデルのビューの一部で
class User < ActiveRecord::Base 
     has_many :pages 
     # ... Some other stuff here 
    end 

    class Page < ActiveRecord::Base 
     belongs_to :user 
     # ... Some other stuff here 
    end 

:あなたは管理者に到達したとき、Userモデルに直接

Page author is <%= @page.user.name %> 
+0

それは大丈夫感謝:)。したがって、ページが編集されているとき。私はどこかで編集したような音符を持っていたいと思います。だから私はちょうどprofile.user.nameのようなもので行く必要がありますか? –

+0

はい、ユーザーモデルとページモデルの間に別の関連付け(has_many/belongs_to)を使用する必要があります。これを回答に追加しました。 –

+0

大丈夫ですので、基本的に私はこのレールを作成しました。マイグレーションadd_full_name_to_users full_name:string '..次にコントローラのshowメソッドに入るべきものは? '@ page.user.full_name'のためです。私はUserコールをどこで定義するのか疑問に思っていますか?ありがとうございました –

関連する問題