Edited at

Deviseを使っていて初回ログイン時のみ処理を行いたい場合

More than 5 years have passed since last update.

RailsでDeviseを使っていることが前提。sign_in_countカラムを使えばできそう。

こんな感じ(一度もログインしていない場合、0が格納されているので)

if current_user.sign_in_count.zero?

# 初回ログイン時のみ行いたい処理
end

上記処理をどこに書くべきかですが、deviseはWardenを使っているので、

config/initializers/warden_callbacks.rb

Warden::Manager.after_authentication do |user, auth, opts|

if user.sign_in_count.zero?
# 初回ログイン時のみ行いたい処理
end
end

上記のようにcallbackを設定してあげればOKです。