質問編集履歴
7
質問内容の文章の追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -56,6 +56,16 @@
|
|
56
56
|
こちらの原因教えていただけますでしょうか?
|
57
57
|
|
58
58
|

|
59
|
+
|
60
|
+
`File.join` にしてもエラーになる(これはsort.eachにしてないから)
|
61
|
+
|
62
|
+

|
63
|
+
|
64
|
+
`File.join` と `sort.each` を忘れずに書いても二重に出力されてしまいます
|
65
|
+
|
66
|
+

|
67
|
+
|
68
|
+
|
59
69
|
```Ruby
|
60
70
|
# main.rb
|
61
71
|
# Your code here!
|
@@ -64,8 +74,6 @@
|
|
64
74
|
require './honda'
|
65
75
|
require './nissan'
|
66
76
|
|
67
|
-
|
68
|
-
|
69
77
|
def main
|
70
78
|
|
71
79
|
cars = []
|
6
質問文の追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -47,6 +47,15 @@
|
|
47
47
|
|
48
48
|

|
49
49
|
|
50
|
+
|
51
|
+
【追記④】
|
52
|
+
`Dir[File.dirname(__FILE__) + '*.rb'].sort.each {|file| require file }` ではなく
|
53
|
+
`Dir[File.dirname(__FILE__) + '/*.rb'].sort.each {|file| require file }` でした。
|
54
|
+
|
55
|
+
これで実行すると下のスクショのように2度出力されてしまいます。
|
56
|
+
こちらの原因教えていただけますでしょうか?
|
57
|
+
|
58
|
+

|
50
59
|
```Ruby
|
51
60
|
# main.rb
|
52
61
|
# Your code here!
|
5
コードの修正、文章の追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -20,10 +20,33 @@
|
|
20
20
|
以下のように「アクセル良好」、「ブレーキ良好」が二重に出力されてしまいます。
|
21
21
|
これは `if __FILE__ == $0` を出力してるのが原因でしょうか?
|
22
22
|
|
23
|
+
=> car.rb を修正して解決済み
|
24
|
+
|
23
25
|

|
24
26
|
|
27
|
+
【追記③】アドバイスを元に何パターンか試しました。上手く行った部分もあるのですが出力の部分で苦戦してます。
|
28
|
+
・ `require` と `require_relative` 両方で上手くいった
|
29
|
+
・ `Dir[File.dirname(__FILE__) + '/*.rb'].each {|file| require file } ` だとエラー発生
|
30
|
+
・ `if __FILE__ == $0` だと上手く行くが `puts` だとエラーがでる
|
25
31
|
|
32
|
+
追記③の質問
|
33
|
+
・`if __FILE__ == $0` ではなく `puts` で出力する方法はどうすればいいか?(もう `if __FILE__ == $0` するもんだと覚える方がいいのか)
|
34
|
+
・ `Dir[File.dirname(__FILE__) + '/*.rb'].each {|file| require file } ` の正しい記述方法
|
26
35
|
|
36
|
+
お分かりであればお願いいたします。
|
37
|
+
|
38
|
+
↓こちらは上手くいった例
|
39
|
+
|
40
|
+

|
41
|
+
|
42
|
+
↓ `if __FILE__ == $0` だと上手く行くが `puts` だとエラーになった例
|
43
|
+
|
44
|
+

|
45
|
+
|
46
|
+
↓ `require` ではなく `Dir[File.dirname(__FILE__) + '/*.rb'].each {|file| require file } ` だと失敗
|
47
|
+
|
48
|
+

|
49
|
+
|
27
50
|
```Ruby
|
28
51
|
# main.rb
|
29
52
|
# Your code here!
|
4
スクショの追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -16,11 +16,14 @@
|
|
16
16
|
|
17
17
|
【追記②】
|
18
18
|
|
19
|
-
`car.rb` に `attr_accessor :capacity, :price, :speed` を追加して出力したら上手く行ったんですが、
|
19
|
+
`car.rb` に `attr_accessor :capacity, :price, :speed` を追加して出力したら上手く行ったんですが、
|
20
|
+
以下のように「アクセル良好」、「ブレーキ良好」が二重に出力されてしまいます。
|
20
21
|
これは `if __FILE__ == $0` を出力してるのが原因でしょうか?
|
21
22
|
|
23
|
+

|
22
24
|
|
23
25
|
|
26
|
+
|
24
27
|
```Ruby
|
25
28
|
# main.rb
|
26
29
|
# Your code here!
|
3
コードとスクショの追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -8,14 +8,19 @@
|
|
8
8
|
|
9
9
|

|
10
10
|
|
11
|
-
【追記】回答を参考に以下に直しましたが今度は `NoMethodError` が発生しました。
|
11
|
+
【追記①】回答を参考に以下に直しましたが今度は `NoMethodError` が発生しました。
|
12
12
|
こちらの原因お分かりでしょうか?
|
13
13
|
またソースコードも修正しました。
|
14
14
|
|
15
15
|

|
16
16
|
|
17
|
+
【追記②】
|
17
18
|
|
19
|
+
`car.rb` に `attr_accessor :capacity, :price, :speed` を追加して出力したら上手く行ったんですが、「アクセル良好」、「ブレーキ良好」が二重に出力されてしまいます。
|
20
|
+
これは `if __FILE__ == $0` を出力してるのが原因でしょうか?
|
18
21
|
|
22
|
+
|
23
|
+
|
19
24
|
```Ruby
|
20
25
|
# main.rb
|
21
26
|
# Your code here!
|
@@ -24,15 +29,14 @@
|
|
24
29
|
require './honda'
|
25
30
|
require './nissan'
|
26
31
|
|
27
|
-
# Dir[File.dirname(__FILE__) + '*.rb'].each {|file| require file } #上記のrequireに変更
|
28
32
|
|
29
33
|
|
30
34
|
def main
|
31
35
|
|
32
36
|
cars = []
|
33
|
-
cars << Honda.new(
|
37
|
+
cars << Honda.new(8, 100, 10)
|
34
|
-
cars << Nissan.new(
|
38
|
+
cars << Nissan.new(5, 50, 10)
|
35
|
-
cars << Ferrari.new(
|
39
|
+
cars << Ferrari.new(2, 200, 100)
|
36
40
|
|
37
41
|
cars.each do |car|
|
38
42
|
puts " 定員:#{car.capacity}人 価格:#{car.price}円 加速:#{car.speed}km 機能:#{car.accel},#{car.brake} "
|
@@ -43,11 +47,13 @@
|
|
43
47
|
main
|
44
48
|
end
|
45
49
|
|
50
|
+
|
46
51
|
```
|
47
52
|
|
48
53
|
```Ruby
|
49
54
|
# car.rb
|
50
55
|
class Car
|
56
|
+
attr_accessor :capacity, :price, :speed
|
51
57
|
def initialize(capacity, price, speed)
|
52
58
|
@capacity = capacity
|
53
59
|
@price = price
|
@@ -63,6 +69,7 @@
|
|
63
69
|
end
|
64
70
|
end
|
65
71
|
|
72
|
+
|
66
73
|
```
|
67
74
|
|
68
75
|
```Ruby
|
2
スクショの追加。コードの修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -8,18 +8,31 @@
|
|
8
8
|
|
9
9
|

|
10
10
|
|
11
|
+
【追記】回答を参考に以下に直しましたが今度は `NoMethodError` が発生しました。
|
12
|
+
こちらの原因お分かりでしょうか?
|
13
|
+
またソースコードも修正しました。
|
11
14
|
|
15
|
+

|
16
|
+
|
17
|
+
|
18
|
+
|
12
19
|
```Ruby
|
13
20
|
# main.rb
|
21
|
+
# Your code here!
|
22
|
+
require './car'
|
14
|
-
|
23
|
+
require './ferrari'
|
24
|
+
require './honda'
|
25
|
+
require './nissan'
|
15
26
|
|
27
|
+
# Dir[File.dirname(__FILE__) + '*.rb'].each {|file| require file } #上記のrequireに変更
|
16
28
|
|
29
|
+
|
17
30
|
def main
|
18
31
|
|
19
32
|
cars = []
|
20
|
-
cars
|
33
|
+
cars << Honda.new(100, 8, 10)
|
21
|
-
cars
|
34
|
+
cars << Nissan.new(50, 5, 10)
|
22
|
-
cars
|
35
|
+
cars << Ferrari.new(500, 2, 100)
|
23
36
|
|
24
37
|
cars.each do |car|
|
25
38
|
puts " 定員:#{car.capacity}人 価格:#{car.price}円 加速:#{car.speed}km 機能:#{car.accel},#{car.brake} "
|
1
コードの追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -4,11 +4,13 @@
|
|
4
4
|
|
5
5
|
selfメソッドにしたり色々試したのですがエラーが直りません。(`car.rb` 中で `@capacity` を `self.capacity` に変更したり)
|
6
6
|
|
7
|
+
原因わかる方、ご教授いただけませんでしょうか?
|
8
|
+
|
7
9
|

|
8
10
|
|
9
|
-
原因わかる方、ご教授いただけませんでしょうか?
|
10
11
|
|
11
12
|
```Ruby
|
13
|
+
# main.rb
|
12
14
|
Dir[File.dirname(__FILE__) + '*.rb'].each {|file| require file }
|
13
15
|
|
14
16
|
|
@@ -28,4 +30,42 @@
|
|
28
30
|
main
|
29
31
|
end
|
30
32
|
|
33
|
+
```
|
34
|
+
|
35
|
+
```Ruby
|
36
|
+
# car.rb
|
37
|
+
class Car
|
38
|
+
def initialize(capacity, price, speed)
|
39
|
+
@capacity = capacity
|
40
|
+
@price = price
|
41
|
+
@speed = speed
|
42
|
+
end
|
43
|
+
|
44
|
+
def accel
|
45
|
+
p "アクセル良好"
|
46
|
+
end
|
47
|
+
|
48
|
+
def brake
|
49
|
+
p "ブレーキ良好"
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
```
|
54
|
+
|
55
|
+
```Ruby
|
56
|
+
# ferrari.rb
|
57
|
+
class Ferrari < Car
|
58
|
+
end
|
59
|
+
```
|
60
|
+
|
61
|
+
```Ruby
|
62
|
+
# honda.rb
|
63
|
+
class Honda < Car
|
64
|
+
end
|
65
|
+
```
|
66
|
+
|
67
|
+
```Ruby
|
68
|
+
# nissan.rb
|
69
|
+
class Nissan < Car
|
70
|
+
end
|
31
71
|
```
|