質問編集履歴

6

syuusei

2021/11/29 07:16

投稿

IRIESS
IRIESS

スコア45

test CHANGED
File without changes
test CHANGED
@@ -134,6 +134,12 @@
134
134
 
135
135
  ```ruby
136
136
 
137
+
138
+
139
+ #
140
+
141
+ このコードで解決しました。
142
+
137
143
  it "ちょうど1時間なら有効" do
138
144
 
139
145
  agreement = build(:agreement, room: room, user: room.user, host: room.host, finish_time: Time.current + 25.hour)
@@ -143,3 +149,43 @@
143
149
  end
144
150
 
145
151
  ```
152
+
153
+
154
+
155
+ そして
156
+
157
+
158
+
159
+ ```ruby
160
+
161
+ if room.agreement.nil?
162
+
163
+ Agreement.where('finish_time >= ? && ? >= start_time && user_id = ?', start_time, finish_time, user_id).exists?
164
+
165
+ errors.add(:start_time, "userの勤務期間が他の契約と重複していますneeee。")
166
+
167
+ else
168
+
169
+
170
+
171
+ ここにifをつけ忘れていたこともややこしくしていました泣泣
172
+
173
+ 正しくは
174
+
175
+
176
+
177
+ if room.agreement.nil?
178
+
179
+ if Agreement.where('finish_time >= ? && ? >= start_time && user_id = ?', start_time, finish_time, user_id).exists?
180
+
181
+ errors.add(:start_time, "userの勤務期間が他の契約と重複していますneeee。")
182
+
183
+ end
184
+
185
+ else
186
+
187
+
188
+
189
+ に修正しました
190
+
191
+ ```

5

tuiki

2021/11/29 07:16

投稿

IRIESS
IRIESS

スコア45

test CHANGED
File without changes
test CHANGED
@@ -129,3 +129,17 @@
129
129
  end
130
130
 
131
131
  ```
132
+
133
+
134
+
135
+ ```ruby
136
+
137
+ it "ちょうど1時間なら有効" do
138
+
139
+ agreement = build(:agreement, room: room, user: room.user, host: room.host, finish_time: Time.current + 25.hour)
140
+
141
+ expect(agreement).to be_valid
142
+
143
+ end
144
+
145
+ ```

4

gozi

2021/11/29 07:13

投稿

IRIESS
IRIESS

スコア45

test CHANGED
File without changes
test CHANGED
@@ -129,21 +129,3 @@
129
129
  end
130
130
 
131
131
  ```
132
-
133
-
134
-
135
- ```ruby
136
-
137
- # この書き方で解決しました
138
-
139
- it "1時間ちょうどなら有効" do
140
-
141
- room = create(:room)
142
-
143
- agreement = build(:agreement, room: room, user: room.user, host: room.host, finish_time: Time.current + 25.hour )
144
-
145
- expect(agreement).to be_invalid
146
-
147
- end
148
-
149
- ```

3

kaizennsaku

2021/11/29 06:29

投稿

IRIESS
IRIESS

スコア45

test CHANGED
File without changes
test CHANGED
@@ -129,3 +129,21 @@
129
129
  end
130
130
 
131
131
  ```
132
+
133
+
134
+
135
+ ```ruby
136
+
137
+ # この書き方で解決しました
138
+
139
+ it "1時間ちょうどなら有効" do
140
+
141
+ room = create(:room)
142
+
143
+ agreement = build(:agreement, room: room, user: room.user, host: room.host, finish_time: Time.current + 25.hour )
144
+
145
+ expect(agreement).to be_invalid
146
+
147
+ end
148
+
149
+ ```

2

書式の改善

2021/11/29 06:11

投稿

IRIESS
IRIESS

スコア45

test CHANGED
@@ -1 +1 @@
1
- オリジナルvalidateでRspec実行時のみ起きるエラーについて
1
+ Rspec validateの中parameterを使用しているときのモデルspecについて
test CHANGED
File without changes

1

ごじ

2021/11/28 12:56

投稿

IRIESS
IRIESS

スコア45

test CHANGED
File without changes
test CHANGED
@@ -17,6 +17,8 @@
17
17
 
18
18
 
19
19
  パラメータを渡してないからだと思うのですが、ではどのようにしてモデルテストを記述したら良いのか分かりません。。。。。
20
+
21
+ リクエストspecに書き換えたほうがいいでしょうか?
20
22
 
21
23
  ベストプラクティスをご教授お願い致します。
22
24