##前提・実現したいこと
ruby '2.6.6'
gem 'rails', '> 6.0.3', '>= 6.0.3.2'> 0.4.2'
gem 'mysql2', '
##発生している問題・エラーメッセージ
設定が出来ているか確認をしようと思い、nameを30文字で書いてみたところ最後でfalseと出るはずがtrueと出ている為、保存されてしまいます。
[36] pry(main)> book = Book.new => #<Book:0x00007fad2d1658c8 id: nil, name: nil, published_on: nil, price: nil, created_at: nil, updated_at: nil, publisher_id: nil> [37] pry(main)> book.name = "a" * 30 => "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" [38] pry(main)> book.price = 1000 => 1000 [39] pry(main)> book.publisher = Publisher.find(1) Publisher Load (1.3ms) SELECT `publishers`.* FROM `publishers` WHERE `publishers`.`id` = 1 LIMIT 1 => #<Publisher:0x00007fad27386068 id: 1, name: "Gihyo inc.", address: "Ichigaya", created_at: Fri, 31 Jul 2020 07:23:46 UTC +00:00, updated_at: Fri, 31 Jul 2020 07:23:46 UTC +00:00> [40] pry(main)> book.save (6.1ms) BEGIN Book Create (0.2ms) INSERT INTO `books` (`name`, `price`, `created_at`, `updated_at`, `publisher_id`) VALUES ('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 1000, '2020-07-31 08:45:40.490070', '2020-07-31 08:45:40.490070', 1) (8.8ms) COMMIT => true
##該当のソースコード
class Book < ApplicationRecord scope :costly, -> { where("price > ?", 3000) } scope :written_about, ->(theme) { where("name like ?", "%#{theme}%") } belongs_to :publisher has_many :book_authors has_many :authors, through: :book_authors validates :name, presence: true validates :name, length: { maximum: 25 } validates :price, numericality: { greater_than_or_equal_to: 0 } end
##自分で調べたことや試したこと
ターミナルを再起動
スペルミスの確認
インデントの確認
endの中に入っているか確認
他にも色々検索してみましたがわかりませんでした。
わかる方がいらっしゃいましたらよろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/01 05:42 編集
2020/08/01 05:44
2020/08/01 06:12
2020/08/01 06:41
2020/08/01 06:48
2020/08/01 07:02