rake db:seed 什么都不做
rake db:seed doesn't do anything
我制作了一个小db/seeds.rb
文件:
web = Website.find_or_create_by(id: 1) do |w|
w.website = "http://example.dev/"
w.banner_msg = "Hey! Banner message!"
w.signup_msg = "Wahey! Sign up message!"
w.bg_col = "#333"
w.txt_col = "#EEE"
w.btn_col = "#999"
end
pub = Publisher.find_or_create_by(id: 1) do |p|
p.phone = "021 111 1111"
p.website = web
end
User.find_or_create_by(id: 1) do |u|
u.email = 'email@email.com'
u.password = 'password'
u.first_name = 'Joe'
u.last_name = 'Bob'
u.publisher = pub
end
User.create(id: 5, email: "hello@ds.dfs")
当我运行rake db:seed
时,终端只是接受命令并显示一个新行,没有错误信息,没有"rake abort!",什么都没有。
当我检查 Rails 控制台中的字段时,那里什么也没有。发生什么事了?
好的,我发现
1) 颜色乱了,这里不能是3位,必须是完整的6位。
2) 我的关系链错了。我有 user
有一个 publisher
,它有一个 website
,当模型实际设置时 website
有一个 publisher
,它有一个 user
.
我的烦恼是绝对没有错误消息。我必须将 seeds.rb
的内容复制并粘贴到 Rails 控制台,然后它只显示 rollback
,因此我必须输入 user.errors
才能查看 user
,其他型号也一样。
有没有人对这种情况有更好的错误反馈建议?
您可以使用类似于 find_or_create_by
的 find_or_create_by!(attributes, &block)
,但会调用 create!
,因此如果创建的记录无效,则会引发异常。 APIDock
我制作了一个小db/seeds.rb
文件:
web = Website.find_or_create_by(id: 1) do |w|
w.website = "http://example.dev/"
w.banner_msg = "Hey! Banner message!"
w.signup_msg = "Wahey! Sign up message!"
w.bg_col = "#333"
w.txt_col = "#EEE"
w.btn_col = "#999"
end
pub = Publisher.find_or_create_by(id: 1) do |p|
p.phone = "021 111 1111"
p.website = web
end
User.find_or_create_by(id: 1) do |u|
u.email = 'email@email.com'
u.password = 'password'
u.first_name = 'Joe'
u.last_name = 'Bob'
u.publisher = pub
end
User.create(id: 5, email: "hello@ds.dfs")
当我运行rake db:seed
时,终端只是接受命令并显示一个新行,没有错误信息,没有"rake abort!",什么都没有。
当我检查 Rails 控制台中的字段时,那里什么也没有。发生什么事了?
好的,我发现
1) 颜色乱了,这里不能是3位,必须是完整的6位。
2) 我的关系链错了。我有 user
有一个 publisher
,它有一个 website
,当模型实际设置时 website
有一个 publisher
,它有一个 user
.
我的烦恼是绝对没有错误消息。我必须将 seeds.rb
的内容复制并粘贴到 Rails 控制台,然后它只显示 rollback
,因此我必须输入 user.errors
才能查看 user
,其他型号也一样。
有没有人对这种情况有更好的错误反馈建议?
您可以使用类似于 find_or_create_by
的 find_or_create_by!(attributes, &block)
,但会调用 create!
,因此如果创建的记录无效,则会引发异常。 APIDock