.each迭代器有问题吗?

时间:2017-04-28 17:06:16

标签: ruby-on-rails

我启动索引页面后 下面,文字印刷了6次。不知道为什么。我是铁轨上的新手。我已经在迁移时定义了它们。

<% @controls.each do |t| %>
  <%= t.home %>
  <%= t.services %>
  <%= t.contact %>
<% end %>

这是我的seeds.rb

a1 = Control.create(home: "Home", services: "Services", contact: "Contact")

控制器代码

def index
  @controls = Control.all
end

2 个答案:

答案 0 :(得分:1)

您已多次运行rake db:seed。您可以通过像这样更新种子文件来解决这个问题

Control.delete_all
a1 = Control.create(home: "Home", services: "Services", contact: "Contact")

或者像这样,只有在已经没有的情况下才会在数据库中创建一个新项目。

Control.find_or_create_by(home: "Home", services: "Services", contact: "Contact")

然后,您可以随意自由地运行rake db:seed

答案 1 :(得分:0)

回答你的问题:不。你把seeds.rb放进去后,你的应用大约重启了六次吗?我敢打赌,你有。

插入数据后,您永远不会删除数据,因此每次运行seeds.rb时,都会添加新记录,永远不会清除以前的数据。