rake db:seed什么都不做

时间:2016-05-18 05:03:27

标签: ruby-on-rails ruby-on-rails-4 seeding

我制作了一个小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控制台中的字段时,那里什么也没有。发生了什么事?

2 个答案:

答案 0 :(得分:5)

您可以使用e.keyCode find_or_create_by!(attributes, &block),但调用find_or_create_by,以便在创建的记录无效时引发异常。 APIDock

答案 1 :(得分:0)

好的,我发现了

1)颜色破碎,这里不允许3位数,必须是6位。

2)我的关系链是错误的。我的user有一个publisherwebsite,当模型实际设置为website的{​​{1}}时publisher user }。

我的烦恼是绝对没有错误信息。我必须将seeds.rb的内容复制并粘贴到Rails控制台,然后说的只是rollback,因此我必须输入user.errors才能看到user的错误,和其他模特一样明智。

有没有人就这种情况提供更好的错误反馈建议?