質問編集履歴
4
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -174,7 +174,7 @@
|
|
174
174
|
|
175
175
|
#自分で調べたこと、エラー文
|
176
176
|
|
177
|
-
Book.create!でエラーが出ています。
|
177
|
+
Book.create!でエラーを調べ下記のエラー文が出ています。
|
178
178
|
|
179
179
|
```
|
180
180
|
|
3
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -172,7 +172,7 @@
|
|
172
172
|
|
173
173
|
```
|
174
174
|
|
175
|
-
#自分で調べたこと
|
175
|
+
#自分で調べたこと、エラー文
|
176
176
|
|
177
177
|
Book.create!でエラーが出ています。
|
178
178
|
|
2
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
コンソールで
|
4
4
|
|
5
|
-
booksテーブルに **name: "book1"** と **price: 1000** を保存したい。
|
5
|
+
booksテーブルに **name: "book1"** と **price: 1000** と **published_on: Time.parse("20201010").ago(1.months)**を保存したい。
|
6
6
|
|
7
7
|
booksテーブルにデータは保存はできないがpublishersテーブルにデータは保存できる。
|
8
8
|
|
@@ -26,21 +26,23 @@
|
|
26
26
|
|
27
27
|
```
|
28
28
|
|
29
|
-
[1
|
29
|
+
[12] pry(main)> book = Book.create(
|
30
|
-
|
30
|
+
|
31
|
-
[1
|
31
|
+
[12] pry(main)* name: "Book 1",
|
32
|
+
|
32
|
-
|
33
|
+
[12] pry(main)* published_on: Time.parse("20201010").ago(1.months),
|
34
|
+
|
33
|
-
[1
|
35
|
+
[12] pry(main)* price: 1000,
|
34
|
-
|
36
|
+
|
35
|
-
[1
|
37
|
+
[12] pry(main)* )
|
36
|
-
|
38
|
+
|
37
|
-
=> #<Book:0x00007f
|
39
|
+
=> #<Book:0x00007fb4f3e62e40
|
38
40
|
|
39
41
|
id: nil,
|
40
42
|
|
41
|
-
name: "
|
43
|
+
name: "Book 1",
|
42
|
-
|
44
|
+
|
43
|
-
published_on:
|
45
|
+
published_on: Thu, 10 Sep 2020,
|
44
46
|
|
45
47
|
price: 1000,
|
46
48
|
|
@@ -152,7 +154,7 @@
|
|
152
154
|
|
153
155
|
|
154
156
|
|
155
|
-
belongs_to :publisher # 本は出版社名を一つ持っている
|
157
|
+
belongs_to :publisher, optional: true # 本は出版社名を一つ持っている
|
156
158
|
|
157
159
|
has_many :book_authors # 本はたくさんの著者が書いている、中間テーブル
|
158
160
|
|
@@ -172,36 +174,38 @@
|
|
172
174
|
|
173
175
|
#自分で調べたことや試したこと
|
174
176
|
|
177
|
+
Book.create!でエラーが出ています。
|
178
|
+
|
175
|
-
```
|
179
|
+
```
|
176
|
-
|
180
|
+
|
177
|
-
[1
|
181
|
+
[13] pry(main)> Book.create!
|
178
|
-
|
182
|
+
|
179
|
-
|
183
|
+
ActiveRecord::RecordInvalid: Validation failed: Publisher must exist, Name can't be blank, Price is not a number
|
184
|
+
|
180
|
-
|
185
|
+
from /Users/7tk/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3.2/lib/active_record/validations.rb:80:in `raise_validation_error'
|
186
|
+
|
181
|
-
```
|
187
|
+
```
|
182
|
-
|
188
|
+
|
183
|
-
検
|
189
|
+
> ActiveRecord :: RecordInvalid:検証に失敗しました:パブリッシャーが存在している必要があります。名前を空白にすることはできません。価格は数値ではありません
|
184
|
-
|
190
|
+
|
191
|
+
|
192
|
+
|
185
|
-
|
193
|
+
との意味で
|
186
|
-
|
194
|
+
|
187
|
-
```
|
195
|
+
```
|
196
|
+
|
188
|
-
|
197
|
+
[12] pry(main)> book = Book.create(
|
198
|
+
|
199
|
+
[12] pry(main)* name: "Book 1",
|
200
|
+
|
201
|
+
[12] pry(main)* published_on: Time.parse("20201010").ago(1.months),
|
202
|
+
|
189
|
-
|
203
|
+
[12] pry(main)* price: 1000,
|
204
|
+
|
190
|
-
|
205
|
+
[12] pry(main)* )
|
206
|
+
|
191
|
-
```
|
207
|
+
```
|
192
|
-
|
208
|
+
|
193
|
-
|
209
|
+
上記のように書いたのですがどこが間違っているのか分からなかったので、
|
194
|
-
|
195
|
-
```
|
196
|
-
|
197
|
-
[16] pry(main)> Book.save
|
198
|
-
|
199
|
-
NoMethodError: undefined method `save' for #<Class:0x00007fa7ed9dc488>
|
200
|
-
|
201
|
-
from /Users/7tk/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/activerecord-6.0.3.2/lib/active_record/dynamic_matchers.rb:22:in `method_missing'
|
202
|
-
|
203
|
-
```
|
204
|
-
|
205
|
-
検索しても分からずで解決できませんでした。
|
206
210
|
|
207
211
|
わかる方がいらっしゃいましたらよろしくお願いします。
|
1
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -58,7 +58,7 @@
|
|
58
58
|
|
59
59
|
|
60
60
|
|
61
|
-
**⬇︎publishersテーブル
|
61
|
+
**⬇︎publishersテーブルは保存出来る⬇︎**
|
62
62
|
|
63
63
|
```
|
64
64
|
|