質問編集履歴
7
質問内容の文章の追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -114,6 +114,26 @@
|
|
114
114
|
|
115
115
|

|
116
116
|
|
117
|
+
|
118
|
+
|
119
|
+
`File.join` にしてもエラーになる(これはsort.eachにしてないから)
|
120
|
+
|
121
|
+
|
122
|
+
|
123
|
+

|
124
|
+
|
125
|
+
|
126
|
+
|
127
|
+
`File.join` と `sort.each` を忘れずに書いても二重に出力されてしまいます
|
128
|
+
|
129
|
+
|
130
|
+
|
131
|
+

|
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
質問文の追記
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
|
+

|
116
|
+
|
99
117
|
```Ruby
|
100
118
|
|
101
119
|
# main.rb
|
5
コードの修正、文章の追加
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
|

|
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
|
+

|
80
|
+
|
81
|
+
|
82
|
+
|
83
|
+
↓ `if __FILE__ == $0` だと上手く行くが `puts` だとエラーになった例
|
84
|
+
|
85
|
+
|
86
|
+
|
87
|
+

|
88
|
+
|
89
|
+
|
90
|
+
|
91
|
+
↓ `require` ではなく `Dir[File.dirname(__FILE__) + '/*.rb'].each {|file| require file } ` だと失敗
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+

|
50
96
|
|
51
97
|
|
52
98
|
|
4
スクショの追加
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
|
+

|
40
46
|
|
41
47
|
|
42
48
|
|
3
コードとスクショの追加
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
|

|
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,
|
73
|
+
cars << Honda.new(8, 100, 10)
|
66
74
|
|
67
|
-
cars << Nissan.new(5
|
75
|
+
cars << Nissan.new(5, 50, 10)
|
68
76
|
|
69
|
-
cars << Ferrari.new(
|
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
スクショの追加。コードの修正
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
|
+

|
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
|
65
|
+
cars << Honda.new(100, 8, 10)
|
40
66
|
|
41
|
-
cars
|
67
|
+
cars << Nissan.new(50, 5, 10)
|
42
68
|
|
43
|
-
cars
|
69
|
+
cars << Ferrari.new(500, 2, 100)
|
44
70
|
|
45
71
|
|
46
72
|
|
1
コードの追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -10,15 +10,19 @@
|
|
10
10
|
|
11
11
|
|
12
12
|
|
13
|
+
原因わかる方、ご教授いただけませんでしょうか?
|
14
|
+
|
15
|
+
|
16
|
+
|
13
17
|

|
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
|
+
```
|