我试图在seed.rb文件中使用一些sql语句为Rails应用程序播种。提供了12个值,但表中有15列。额外的三列是自动生成的id,created_at,并在Rails默认包含的列处更新。如果我按以下方式在seed.rb文件中运行自定义sql语句....
connection = ActiveRecord::Base.connection()
query = "random sql"
connection.execute(query)
Rails不会像我那样为我创建那些列
Employee.create!(name: "Joe")
无论如何,当我在seed.rb中运行sql语句时,向rails指示我需要填充值的id和timestamp列吗?
答案 0 :(得分:0)
不,因为Rails无法知道你的"random sql"
是否创建了任何记录来填写ids /时间戳。
当你自己connection.execute
时,你已经离弃了你的ORM并屈服于SQL的诱惑。
如果您可以使用ActiveRecord执行此操作,请执行此操作!如果没有,那么,这就是为什么Rails允许你下载到SQL(但再想一想。你能真的不能在Ruby中写它吗?)。