質問編集履歴

7

質問内容の文章の追加

2019/07/26 02:00

投稿

kazuki0714
kazuki0714

スコア28

test CHANGED
File without changes
test CHANGED
@@ -114,6 +114,26 @@
114
114
 
115
115
  ![![イメージ説明](3d138c1fe51c61d2e19f51b42ae3d46f.png)
116
116
 
117
+
118
+
119
+ `File.join` にしてもエラーになる(これはsort.eachにしてないから)
120
+
121
+
122
+
123
+ ![イメージ説明](1b2359491e5e417e1063883c5c645870.png)
124
+
125
+
126
+
127
+ `File.join` と `sort.each` を忘れずに書いても二重に出力されてしまいます
128
+
129
+
130
+
131
+ ![イメージ説明](20150ed34dd54ee2a424db470d0d901d.png)
132
+
133
+
134
+
135
+
136
+
117
137
  ```Ruby
118
138
 
119
139
  # main.rb
@@ -130,10 +150,6 @@
130
150
 
131
151
 
132
152
 
133
-
134
-
135
-
136
-
137
153
  def main
138
154
 
139
155
 

6

質問文の追記

2019/07/26 02:00

投稿

kazuki0714
kazuki0714

スコア28

test CHANGED
File without changes
test CHANGED
@@ -96,6 +96,24 @@
96
96
 
97
97
 
98
98
 
99
+
100
+
101
+ 【追記④】
102
+
103
+ `Dir[File.dirname(__FILE__) + '*.rb'].sort.each {|file| require file }` ではなく
104
+
105
+ `Dir[File.dirname(__FILE__) + '/*.rb'].sort.each {|file| require file }` でした。
106
+
107
+
108
+
109
+ これで実行すると下のスクショのように2度出力されてしまいます。
110
+
111
+ こちらの原因教えていただけますでしょうか?
112
+
113
+
114
+
115
+ ![![イメージ説明](3d138c1fe51c61d2e19f51b42ae3d46f.png)
116
+
99
117
  ```Ruby
100
118
 
101
119
  # main.rb

5

コードの修正、文章の追加

2019/07/26 01:40

投稿

kazuki0714
kazuki0714

スコア28

test CHANGED
File without changes
test CHANGED
@@ -42,11 +42,57 @@
42
42
 
43
43
 
44
44
 
45
+ => car.rb を修正して解決済み
46
+
47
+
48
+
45
49
  ![イメージ説明](ae0b3caa61631eabfd2a9a877bf77b1a.png)
46
50
 
47
51
 
48
52
 
49
-
53
+ 【追記③】アドバイスを元に何パターンか試しました。上手く行った部分もあるのですが出力の部分で苦戦してます。
54
+
55
+ ・ `require` と `require_relative` 両方で上手くいった
56
+
57
+ ・ `Dir[File.dirname(__FILE__) + '/*.rb'].each {|file| require file } ` だとエラー発生
58
+
59
+ ・ `if __FILE__ == $0` だと上手く行くが `puts` だとエラーがでる
60
+
61
+
62
+
63
+ 追記③の質問
64
+
65
+ ・`if __FILE__ == $0` ではなく `puts` で出力する方法はどうすればいいか?(もう `if __FILE__ == $0` するもんだと覚える方がいいのか)
66
+
67
+ ・ `Dir[File.dirname(__FILE__) + '/*.rb'].each {|file| require file } ` の正しい記述方法
68
+
69
+
70
+
71
+ お分かりであればお願いいたします。
72
+
73
+
74
+
75
+ ↓こちらは上手くいった例
76
+
77
+
78
+
79
+ ![イメージ説明](f3fc8cb772550987d89c6b024db77f15.png)
80
+
81
+
82
+
83
+ ↓ `if __FILE__ == $0` だと上手く行くが `puts` だとエラーになった例
84
+
85
+
86
+
87
+ ![イメージ説明](f04a4e5e34977f30245a55127f1675af.png)
88
+
89
+
90
+
91
+ ↓ `require` ではなく `Dir[File.dirname(__FILE__) + '/*.rb'].each {|file| require file } ` だと失敗
92
+
93
+
94
+
95
+ ![イメージ説明](04a4177b8583dcf0ad5d1e6cca4f5d1c.png)
50
96
 
51
97
 
52
98
 

4

スクショの追加

2019/07/25 08:18

投稿

kazuki0714
kazuki0714

スコア28

test CHANGED
File without changes
test CHANGED
@@ -34,9 +34,15 @@
34
34
 
35
35
 
36
36
 
37
- `car.rb` に `attr_accessor :capacity, :price, :speed` を追加して出力したら上手く行ったんですが、「アクセル良好」、「ブレーキ良好」が二重に出力されてしまいます。
37
+ `car.rb` に `attr_accessor :capacity, :price, :speed` を追加して出力したら上手く行ったんですが、
38
+
39
+ 以下のように「アクセル良好」、「ブレーキ良好」が二重に出力されてしまいます。
38
40
 
39
41
  これは `if __FILE__ == $0` を出力してるのが原因でしょうか?
42
+
43
+
44
+
45
+ ![イメージ説明](ae0b3caa61631eabfd2a9a877bf77b1a.png)
40
46
 
41
47
 
42
48
 

3

コードとスクショの追加

2019/07/25 07:21

投稿

kazuki0714
kazuki0714

スコア28

test CHANGED
File without changes
test CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
 
20
20
 
21
- 【追記】回答を参考に以下に直しましたが今度は `NoMethodError` が発生しました。
21
+ 【追記】回答を参考に以下に直しましたが今度は `NoMethodError` が発生しました。
22
22
 
23
23
  こちらの原因お分かりでしょうか?
24
24
 
@@ -27,6 +27,16 @@
27
27
 
28
28
 
29
29
  ![イメージ説明](0d35c1ae08af6533fdf6a8478fb8c57f.png)
30
+
31
+
32
+
33
+ 【追記②】
34
+
35
+
36
+
37
+ `car.rb` に `attr_accessor :capacity, :price, :speed` を追加して出力したら上手く行ったんですが、「アクセル良好」、「ブレーキ良好」が二重に出力されてしまいます。
38
+
39
+ これは `if __FILE__ == $0` を出力してるのが原因でしょうか?
30
40
 
31
41
 
32
42
 
@@ -50,8 +60,6 @@
50
60
 
51
61
 
52
62
 
53
- # Dir[File.dirname(__FILE__) + '*.rb'].each {|file| require file } #上記のrequireに変更
54
-
55
63
 
56
64
 
57
65
 
@@ -62,11 +70,11 @@
62
70
 
63
71
  cars = []
64
72
 
65
- cars << Honda.new(100, 8, 10)
73
+ cars << Honda.new(8, 100, 10)
66
74
 
67
- cars << Nissan.new(50, 5, 10)
75
+ cars << Nissan.new(5, 50, 10)
68
76
 
69
- cars << Ferrari.new(500, 2, 100)
77
+ cars << Ferrari.new(2, 200, 100)
70
78
 
71
79
 
72
80
 
@@ -88,6 +96,8 @@
88
96
 
89
97
 
90
98
 
99
+
100
+
91
101
  ```
92
102
 
93
103
 
@@ -97,6 +107,8 @@
97
107
  # car.rb
98
108
 
99
109
  class Car
110
+
111
+ attr_accessor :capacity, :price, :speed
100
112
 
101
113
  def initialize(capacity, price, speed)
102
114
 
@@ -125,6 +137,8 @@
125
137
  end
126
138
 
127
139
  end
140
+
141
+
128
142
 
129
143
 
130
144
 

2

スクショの追加。コードの修正

2019/07/25 07:18

投稿

kazuki0714
kazuki0714

スコア28

test CHANGED
File without changes
test CHANGED
@@ -18,13 +18,39 @@
18
18
 
19
19
 
20
20
 
21
+ 【追記】回答を参考に以下に直しましたが今度は `NoMethodError` が発生しました。
22
+
23
+ こちらの原因お分かりでしょうか?
24
+
25
+ またソースコードも修正しました。
26
+
27
+
28
+
29
+ ![イメージ説明](0d35c1ae08af6533fdf6a8478fb8c57f.png)
30
+
31
+
32
+
33
+
34
+
21
35
 
22
36
 
23
37
  ```Ruby
24
38
 
25
39
  # main.rb
26
40
 
41
+ # Your code here!
42
+
43
+ require './car'
44
+
45
+ require './ferrari'
46
+
47
+ require './honda'
48
+
49
+ require './nissan'
50
+
51
+
52
+
27
- Dir[File.dirname(__FILE__) + '*.rb'].each {|file| require file }
53
+ # Dir[File.dirname(__FILE__) + '*.rb'].each {|file| require file } #上記のrequireに変更
28
54
 
29
55
 
30
56
 
@@ -36,11 +62,11 @@
36
62
 
37
63
  cars = []
38
64
 
39
- cars = Honda.new(100, 8, 10)
65
+ cars << Honda.new(100, 8, 10)
40
66
 
41
- cars = Nissan.new(50, 5, 10)
67
+ cars << Nissan.new(50, 5, 10)
42
68
 
43
- cars = Ferrari.new(500, 2, 100)
69
+ cars << Ferrari.new(500, 2, 100)
44
70
 
45
71
 
46
72
 

1

コードの追加

2019/07/25 06:39

投稿

kazuki0714
kazuki0714

スコア28

test CHANGED
File without changes
test CHANGED
@@ -10,15 +10,19 @@
10
10
 
11
11
 
12
12
 
13
+ 原因わかる方、ご教授いただけませんでしょうか?
14
+
15
+
16
+
13
17
  ![イメージ説明](6d8833f8ab77dfcec5a8579aa5830feb.png)
14
18
 
15
19
 
16
20
 
17
- 原因わかる方、ご教授いただけませんでしょうか?
18
-
19
21
 
20
22
 
21
23
  ```Ruby
24
+
25
+ # main.rb
22
26
 
23
27
  Dir[File.dirname(__FILE__) + '*.rb'].each {|file| require file }
24
28
 
@@ -59,3 +63,79 @@
59
63
 
60
64
 
61
65
  ```
66
+
67
+
68
+
69
+ ```Ruby
70
+
71
+ # car.rb
72
+
73
+ class Car
74
+
75
+ def initialize(capacity, price, speed)
76
+
77
+ @capacity = capacity
78
+
79
+ @price = price
80
+
81
+ @speed = speed
82
+
83
+ end
84
+
85
+
86
+
87
+ def accel
88
+
89
+ p "アクセル良好"
90
+
91
+ end
92
+
93
+
94
+
95
+ def brake
96
+
97
+ p "ブレーキ良好"
98
+
99
+ end
100
+
101
+ end
102
+
103
+
104
+
105
+ ```
106
+
107
+
108
+
109
+ ```Ruby
110
+
111
+ # ferrari.rb
112
+
113
+ class Ferrari < Car
114
+
115
+ end
116
+
117
+ ```
118
+
119
+
120
+
121
+ ```Ruby
122
+
123
+ # honda.rb
124
+
125
+ class Honda < Car
126
+
127
+ end
128
+
129
+ ```
130
+
131
+
132
+
133
+ ```Ruby
134
+
135
+ # nissan.rb
136
+
137
+ class Nissan < Car
138
+
139
+ end
140
+
141
+ ```