質問編集履歴
1
事象再現方法を詳細に記載した.
test
CHANGED
File without changes
|
test
CHANGED
@@ -30,31 +30,41 @@
|
|
30
30
|
|
31
31
|
###該当のソースコード
|
32
32
|
|
33
|
-
|
33
|
+
以下,方法にて事象再現可能だと思います.Railsバージョンは5.1.4です.
|
34
34
|
|
35
|
-
```ruby
|
36
|
-
|
37
|
-
|
35
|
+
1 以下コマンドを実行する.
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
Mylib::get_foos.each do |foo|
|
42
|
-
|
43
|
-
Foo.create(:name => foo.name)
|
44
|
-
|
45
|
-
end
|
46
36
|
|
47
37
|
```
|
48
38
|
|
39
|
+
$ rails new footest
|
40
|
+
|
41
|
+
$ cd footest
|
42
|
+
|
43
|
+
$ mkdir lib/mylib
|
44
|
+
|
45
|
+
$ vi lib/mylib/foo.rb
|
46
|
+
|
47
|
+
```
|
48
|
+
|
49
|
+
2 以下内容のfoo.rbを作成する.
|
50
|
+
|
49
|
-
```ruby
|
51
|
+
```ruby
|
50
52
|
|
51
53
|
module Mylib
|
52
54
|
|
53
55
|
class Foo
|
54
56
|
|
55
|
-
|
57
|
+
attr_reader :name
|
56
58
|
|
59
|
+
|
60
|
+
|
61
|
+
def initialize name
|
62
|
+
|
63
|
+
@name = name
|
64
|
+
|
57
|
-
end
|
65
|
+
end
|
66
|
+
|
67
|
+
end
|
58
68
|
|
59
69
|
|
60
70
|
|
@@ -62,11 +72,99 @@
|
|
62
72
|
|
63
73
|
|
64
74
|
|
75
|
+
end
|
76
|
+
|
77
|
+
end
|
78
|
+
|
79
|
+
```
|
80
|
+
|
81
|
+
3 config/application.rbのclass Application内にconfig.autoload_pathsの行を追加する.
|
82
|
+
|
83
|
+
```ruby
|
84
|
+
|
85
|
+
module Footest
|
86
|
+
|
87
|
+
class Application < Rails::Application
|
88
|
+
|
89
|
+
# Initialize configuration defaults for originally generated Rails version.
|
90
|
+
|
91
|
+
config.load_defaults 5.1
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
# Settings in config/environments/* take precedence over those specified here.
|
96
|
+
|
97
|
+
# Application configuration should go into files in config/initializers
|
98
|
+
|
99
|
+
# -- all .rb files in that directory are automatically loaded.
|
100
|
+
|
101
|
+
|
102
|
+
|
103
|
+
config.autoload_paths += %W(#{config.root}/lib/mylib) #追記
|
104
|
+
|
65
105
|
end
|
66
106
|
|
67
|
-
end
|
107
|
+
end
|
68
108
|
|
69
109
|
```
|
110
|
+
|
111
|
+
4 以下コマンドを実行する.
|
112
|
+
|
113
|
+
```
|
114
|
+
|
115
|
+
$ rails generate scaffold Foo name:string
|
116
|
+
|
117
|
+
$ rails db:migrate
|
118
|
+
|
119
|
+
```
|
120
|
+
|
121
|
+
5 db/seeds.rbに以下内容を記載する.
|
122
|
+
|
123
|
+
```ruby
|
124
|
+
|
125
|
+
require 'foo'
|
126
|
+
|
127
|
+
|
128
|
+
|
129
|
+
a = Mylib::Foo.new("foo")
|
130
|
+
|
131
|
+
puts a.name
|
132
|
+
|
133
|
+
Foo.create(:name => a.name)
|
134
|
+
|
135
|
+
```
|
136
|
+
|
137
|
+
6 以下コマンドを実行すると,エラーが発生します.
|
138
|
+
|
139
|
+
```
|
140
|
+
|
141
|
+
$ rails db:seed
|
142
|
+
|
143
|
+
foo
|
144
|
+
|
145
|
+
rails aborted!
|
146
|
+
|
147
|
+
LoadError: Unable to autoload constant Foo, expected /path_to/footest/lib/mylib/foo.rb to define it
|
148
|
+
|
149
|
+
/path_to/footest/db/seeds.rb:13:in `<top (required)>'
|
150
|
+
|
151
|
+
/path_to/footest/bin/rails:9:in `require'
|
152
|
+
|
153
|
+
/path_to/footest/bin/rails:9:in `<top (required)>'
|
154
|
+
|
155
|
+
/path_to/footest/bin/spring:15:in `<top (required)>'
|
156
|
+
|
157
|
+
bin/rails:3:in `load'
|
158
|
+
|
159
|
+
bin/rails:3:in `<main>'
|
160
|
+
|
161
|
+
Tasks: TOP => db:seed
|
162
|
+
|
163
|
+
(See full trace by running task with --trace)
|
164
|
+
|
165
|
+
```
|
166
|
+
|
167
|
+
|
70
168
|
|
71
169
|
###試したこと
|
72
170
|
|