gaku様の備忘録

プログラミングとか、夢と現実と理想とか。。。

deviseで登録時、他のtableと紐付ける

deviseでSign_up時に、userテーブルと紐付けたテーブルのデータを生成する方法を紹介します。
Usersテーブル
email
password

Profilesテーブル
username
country

があったとして、deviseでユーザ登録した際に、Profileデータも生成するってものです。
1.deviseでuserモデルを生成する。(割愛:過去記事参照)
2.Profilesモデルを作成

$ rails g model Profiles username country user:references

*user:referencesでUsersテーブルと紐付けを行っています。

3.app/models/user.rbを編集
privateメソッドを入れているので、一番下に記述してください。

#profileとの1:1ヒモ付
has_one :profile
before_create :build_default_profile
private
def build_default_profile
     build_profile
     true
end
    • 参考文献--

http://www.snip2code.com/Snippet/53144/User-has_one--profile-built-with-Devise

■Gaku様の一言
いや〜、4時間はかかりましたよ。。。
しかし、これでまた一歩完成に近づいた気がします。
けど、C#やってたころに比べれば、そんなにはまり時間が長くない。
なかなかストレスフリーにここまで来れている気がします。
4時間の間に、Gitでハマって心折れかけてましたが。。。