質問編集履歴
4
コードの追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -204,4 +204,26 @@
|
|
204
204
|
|
205
205
|
```
|
206
206
|
|
207
|
+
optinoal:trueを外した後
|
208
|
+
|
209
|
+
```ここに言語を入力
|
210
|
+
|
211
|
+
[16] pry(main)> a = user.active_notifications.create!(action:'like', micropost_id: 100,visited_id: 4)
|
212
|
+
|
213
|
+
(0.1ms) begin transaction
|
214
|
+
|
215
|
+
User Load (0.2ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? [["id", 1], ["LIMIT", 1]]
|
216
|
+
|
217
|
+
User Load (0.1ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? [["id", 4], ["LIMIT", 1]]
|
218
|
+
|
219
|
+
(0.1ms) rollback transaction
|
220
|
+
|
221
|
+
ActiveRecord::RecordInvalid: Validation failed: Miropost must exist, Comment must exist
|
222
|
+
|
223
|
+
from /Users/ryoga_h/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/activerecord-5.1.7/lib/active_record/validations.rb:78:in `raise_validation_error'
|
224
|
+
|
225
|
+
```
|
226
|
+
|
227
|
+
|
228
|
+
|
207
229
|
学習の身で自己解決力も乏しく自分では解決することができませんでした。どなたかご教授頂けると嬉しいです。
|
3
マイグレーションの追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -166,4 +166,42 @@
|
|
166
166
|
|
167
167
|
```
|
168
168
|
|
169
|
+
マイグレーション
|
170
|
+
|
171
|
+
```ここに言語を入力
|
172
|
+
|
173
|
+
class CreateNotifications < ActiveRecord::Migration[5.1]
|
174
|
+
|
175
|
+
def change
|
176
|
+
|
177
|
+
create_table :notifications do |t|
|
178
|
+
|
179
|
+
t.references :visitor, foreign_key: true, null: false
|
180
|
+
|
181
|
+
t.references :visited, foreign_key: true, null: false
|
182
|
+
|
183
|
+
t.references :micropost, foreign_key: true
|
184
|
+
|
185
|
+
t.references :comment, foreign_key: true
|
186
|
+
|
187
|
+
t.string :action, null: false
|
188
|
+
|
189
|
+
t.boolean :checked, default: false, null: false
|
190
|
+
|
191
|
+
|
192
|
+
|
193
|
+
t.timestamps
|
194
|
+
|
195
|
+
end
|
196
|
+
|
197
|
+
# rails5.0以降はt.referencesでindexが自動生成される
|
198
|
+
|
199
|
+
end
|
200
|
+
|
201
|
+
end
|
202
|
+
|
203
|
+
|
204
|
+
|
205
|
+
```
|
206
|
+
|
169
207
|
学習の身で自己解決力も乏しく自分では解決することができませんでした。どなたかご教授頂けると嬉しいです。
|
2
User.rb
test
CHANGED
File without changes
|
test
CHANGED
@@ -156,4 +156,14 @@
|
|
156
156
|
|
157
157
|
```
|
158
158
|
|
159
|
+
User.rb
|
160
|
+
|
161
|
+
```ここに言語を入力
|
162
|
+
|
163
|
+
has_many :active_notifications, class_name: 'Notification', foreign_key: 'visitor_id', dependent: :destroy
|
164
|
+
|
165
|
+
has_many :passive_notifications, class_name: 'Notification', foreign_key: 'visited_id', dependent: :destroy
|
166
|
+
|
167
|
+
```
|
168
|
+
|
159
169
|
学習の身で自己解決力も乏しく自分では解決することができませんでした。どなたかご教授頂けると嬉しいです。
|
1
noitification.rbの追加
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
SQLite3::SQLException: no such table: のテーブル名がおかしい
|
1
|
+
mdSQLite3::SQLException: no such table: のテーブル名がおかしい
|
test
CHANGED
@@ -134,6 +134,26 @@
|
|
134
134
|
|
135
135
|
```
|
136
136
|
|
137
|
+
Notification.rb
|
138
|
+
|
139
|
+
```ここに言語を入力
|
140
|
+
|
141
|
+
class Notification < ApplicationRecord
|
142
|
+
|
143
|
+
default_scope -> { order(created_at: :desc) }
|
144
|
+
|
145
|
+
belongs_to :visitor, class_name: "User", foreign_key: "visitor_id", optional: true
|
146
|
+
|
147
|
+
belongs_to :visited, class_name: "User", foreign_key: "visited_id", optional: true
|
148
|
+
|
149
|
+
belongs_to :micropost, optional: true
|
150
|
+
|
151
|
+
belongs_to :comment, optional: true
|
152
|
+
|
153
|
+
end
|
137
154
|
|
138
155
|
|
156
|
+
|
157
|
+
```
|
158
|
+
|
139
159
|
学習の身で自己解決力も乏しく自分では解決することができませんでした。どなたかご教授頂けると嬉しいです。
|