質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

2223閲覧

Ruby on rails でサインアップをするとエラーが発生する

hiyoko_ryo

総合スコア11

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2019/06/25 13:46

前提・実現したいこと

Ruby on rails にてwebアプリケーションの開発を行なっています。
ユーザー登録をして、チャットが出来るアプリとなります。
サインアップの機能実装し、機能が動くかチェック中に以下のメッセージが発生しました。

発生している問題・エラーメッセージ

NoMethodError in Devise::RegistrationsController#create
undefined method `current_sign_in_at' for #User:0x00007f9b633b1158

else

match = matched_attribute_method(method.to_s)

match ? attribute_missing(match, *args, &block) : super

end

end

該当のソースコード

ruby class User < ApplicationRecord # Include default devise modules. Others available are: # :confirmable, :lockable, :timeoutable and :omniauthable devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable has_many :messages has_many :group_users has_many :groups, through: :group_users end

試したこと

過去の質問なども参考にして、userモデルに記載がないと言うことかなという理解ですが、
解決方法がわからず、どなたかアドバイスをいただけたら幸いです。
はじめての質問になり、過不足などがあれば追加対応いたします。何卒よろしくお願いいたします。

補足情報(FW/ツールのバージョンなど)

rails _5.0.7.2

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hatsu

2019/06/25 15:59

RegistrationsControllerのcreateメソッドでエラーが起きていそうです!エラー内容は『「current_sign_in_at」ってメソッドは定義されてないよ』みたいなことです。 RegistrationsControllerの記述を追記していただけると嬉しいです!
hiyoko_ryo

2019/06/26 23:21

hatsu様  ご丁寧にコメントありがとうございます。 知人に確認がとれまして、user model の表記に 「Trackable」の表記があったため、エラーになっていたのことでした。 無事解決できました。ありがとうございました。 class User < ApplicationRecord # Include default devise modules. Others available are: # :confirmable, :lockable, :timeoutable and :omniauthable devise :database_authenticatable, :registerable, :recoverable, :rememberable, :validatable has_many :messages has_many :group_users has_many :groups, through: :group_users end
guest

回答1

0

ベストアンサー

テーブルにカラムがない可能性があります
bin/rails c でコンソールを開き User.columns で取れるカラム名に current_sign_in_at はありますか?

無ければ User の Migration で以下のようなカラム定義が必要だと思われます
記載してMigrationをやり直すなりDBを作り直すなりが必要です

ruby

1class DeviseCreateUsers < ActiveRecord::Migration[5.0] 2 def change 3 create_table :users do |t| 4 ## 略 ## 5 6 ## Trackable 7 t.integer :sign_in_count, default: 0, null: false 8 t.datetime :current_sign_in_at 9 t.datetime :last_sign_in_at 10 t.string :current_sign_in_ip 11 t.string :last_sign_in_ip 12 13 ## 略 ## 14 end 15 end 16end

もしデータを消したくなければMigrationを追加して add_column でカラム追加等を行う方法もあります

ruby

1class AddTracableToUsers < ActiveRecord::Migration[5.0] 2 def change 3 add_column :users, :sign_in_count, :integer, default: 0, null: false 4 add_column :users, :current_sign_in_at, :datetime 5 add_column :users, :last_sign_in_at, :datetime 6 add_column :users, :current_sign_in_ip, :datetime 7 add_column :users, :last_sign_in_ip, :datetime 8 end 9end

投稿2019/06/26 07:40

Ighrs

総合スコア656

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問