発生している問題・エラーメッセージ
SQLiteで一部カラムにデータを保存できません。
エラーもなく保存が完了したと思い見にいくとそこのカラムの値だけnilになっています。
user.update_attributeなどでも試しましたが、同じ結果でした。
User.newの時まではuser.emailとしてemailの値を取り出せるのですがuser.saveで保存後にuser.emailとするとnilになります。
エラーなども表示されず困っています。考えられる原因などでも良いのでご教授頂けると幸いです。回答お願い致します。
環境(FW/ツールのバージョンなど)
cloud9
SQLite3
Rails
app/controllers/users_controller.rb
class UsersController < ApplicationController def show @user = User.find(params[:id]) end def new end end
app/models/user.rb
class User < ApplicationRecord before_save { self.email = email.downcase! } validates :name, presence: true, length: { maximum: 50 } VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+.[a-z]+\z/i validates :email, presence: true, length: { maximum: 255 }, format: { with: VALID_EMAIL_REGEX }, uniqueness: { case_sensitive: false } has_secure_password validates :password, presence: true, length: { minimum: 6 } end
db/migrate/20210209213647_create_users
class CreateUsers < ActiveRecord::Migration[5.1] def change create_table :users do |t| t.string :name t.string :email t.timestamps end end end
db/migrate/20210210225051_add_index_to_users_email
class AddIndexToUsersEmail < ActiveRecord::Migration[5.1] def change add_index :users, :email, unique: true end end
db/migrate/20210210233322_add_password_digest_to_users
class AddPasswordDigestToUsers < ActiveRecord::Migration[5.1] def change add_column :users, :password_digest, :string end end
helpers/users_helper.rb
module UsersHelper # Gravatar読み込み def gravatar_for(user) gravatar_id = Digest::MD5::hexdigest(user.email.downcase) gravatar_url = "https://secure.gravatar.com/avatar/#{gravatar_id}" image_tag(gravatar_url, alt: user.name, class: "gravatar") end end
回答1件
あなたの回答
tips
プレビュー