teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

5

修正

2021/11/27 08:43

投稿

JuniorSirius
JuniorSirius

スコア38

title CHANGED
File without changes
body CHANGED
@@ -17,7 +17,7 @@
17
17
  NoMethodError:
18
18
  undefined method `created_at' for nil:NilClass
19
19
 
20
- `diary_spec.rb`
20
+ `user_spec.rb`
21
21
  ```ruby
22
22
  describe 'cannot_post?' do
23
23
  context '1日以内に投稿した場合' do

4

修正

2021/11/27 08:43

投稿

JuniorSirius
JuniorSirius

スコア38

title CHANGED
File without changes
body CHANGED
@@ -3,7 +3,7 @@
3
3
  `if文(if diaries)`で試しに組んでみましたが、`nil`エラーが起きました.
4
4
 
5
5
 
6
- `diary.rb`
6
+ `user.rb`
7
7
  ```ruby
8
8
  def cannot_post?
9
9
  latest_diary = diaries.order(created_at: :desc).limit(1)

3

修正

2021/11/27 08:42

投稿

JuniorSirius
JuniorSirius

スコア38

title CHANGED
@@ -1,1 +1,1 @@
1
- 子インスタンスを持つ親スタンスメソッドでnilを返したい
1
+ 子インスタンスを持つ親スタンスメソッドでnilよりfalseを返したい
body CHANGED
File without changes

2

修正

2021/11/27 07:33

投稿

JuniorSirius
JuniorSirius

スコア38

title CHANGED
File without changes
body CHANGED
@@ -15,4 +15,22 @@
15
15
  > 1) User インスタンスメソッド cannot_post? 1日以内に投稿していない場合 falseを返す
16
16
  Failure/Error: (Time.zone.now - latest_diary.first.created_at) < 1.day
17
17
  NoMethodError:
18
- undefined method `created_at' for nil:NilClass
18
+ undefined method `created_at' for nil:NilClass
19
+
20
+ `diary_spec.rb`
21
+ ```ruby
22
+ describe 'cannot_post?' do
23
+ context '1日以内に投稿した場合' do
24
+ it 'trueを返す' do
25
+ create(:diary, user: user_a, created_at: Time.zone.now)
26
+ expect(user_a.cannot_post?).to be true
27
+ end
28
+ end
29
+ context '1日以内に投稿していない場合' do
30
+ let(:can_post_user) { create(:user) }
31
+ it 'falseを返す' do
32
+ expect(can_post_user.cannot_post?).to be false
33
+ end
34
+ end
35
+ end
36
+ ```

1

修正

2021/11/27 07:32

投稿

JuniorSirius
JuniorSirius

スコア38

title CHANGED
File without changes
body CHANGED
@@ -10,4 +10,9 @@
10
10
  #現在時刻と最終投稿の時刻の差分が1日を経過していなかったらtrue
11
11
  (Time.zone.now - latest_diary.first.created_at) < 1.day
12
12
  end
13
- ```
13
+ ```
14
+
15
+ > 1) User インスタンスメソッド cannot_post? 1日以内に投稿していない場合 falseを返す
16
+ Failure/Error: (Time.zone.now - latest_diary.first.created_at) < 1.day
17
+ NoMethodError:
18
+ undefined method `created_at' for nil:NilClass