HippoBlog
Web開発に関する備忘録や
日々の雑記ブログ
  • #Ruby on Rails
  • 2018年9月4日
ENTRY TITLE

Deviceでアカウント作成と同時にhas_oneモデルを保存する際の実装例 – #Rails

TEXT BY @hippohack@hippohack
TEXT BY @hippohack@hippohack
  • このエントリーをはてなブックマークに追加
  • アカウント作成と同時に裏で、アカウント設定情報をデフォルト値で保存したい。
  • accountモデル(has_one)と、settingモデル(belongs_to)で実施。

実装例

[account.rb]

class Account < ApplicationRecord 
    # Include default devise modules. Others available are: 
    # :confirmable, :lockable, :timeoutable and :omniauthable 
    devise :database_authenticatable, :registerable, 
           :recoverable, :rememberable, :trackable, :validatable 
    has_one :setting 

    before_create :build_default_setting 
    private
        def build_default_setting
            build_setting( 
                :language => 'ja',
                :post_per => 10,
                :week_start => 'mon',
                :push_mail => true,
                :push_interval => 15,
            )
            true
        end
end

 

当初deviceを継承したControllerを弄ってなんとかしようとしてたが、Modelで処理できたのでControllerも太らせずに済んでスッキリ。

参考にさせていただいたサイト


最後までお読みいただき、ありがとうございました。

ご意見などありましたら@hippohackへDMをお願いいたします。

  • このエントリーをはてなブックマークに追加