如何在Rails中向表中添加数据?
到目前为止,我已经创建了一个从API中提取数据的Rails应用程序。接下来,我运行了命令
class CreateOrders < ActiveRecord::Migration
def change
create_table :orders do |t|
t.string :email, null: false
t.string :order_date, null: false
t.string :total_price, null: false
t.string :order_number, null: false
t.string :cust_name, null: false
t.string :zip_code, null: false
t.timestamps null: false
end
end
end
我有/db/migrate/timestamp_create_orders.rb
Order.create(:email=>'fake@fake.com',:order_data=>"...
接下来,我相信我需要运行db:migrate,这将创建表。
我的问题是,如何向此表添加数据?我希望用户访问该应用程序,它会提取数据并将其存储在此表中。
我发现了相互矛盾的建议.. 我应该使用here
中的建议吗?timer.Stop();
timer.Interval = new TimeSpan(0, 0, 0, 1); // 1sec
timer.Start();
答案 0 :(得分:2)
您不在迁移中创建数据库条目,通常在迁移文件中创建模式或指定schema
中的更改。您使用seeds
在数据库中创建种子数据。
要通过导轨在数据库中创建新数据,您可以使用create
或new
方法,但是当您使用时,需要save
链接中其他帖子中提到的数据new
方法。
答案 1 :(得分:1)
在创建或迁移新数据库表时,不会自动添加表row
。您需要手动添加它们。填充新创建的数据库表的一种方法是使用位于应用程序seeds.rb
文件夹中的db
文件。您可以将Faker gem添加到应用程序中以创建伪表属性元素。使用faker的一个例子:
(1..3).each do # it'll create 3 new order
Order.create(email: Faker::Internet.email, order_date: Faker::Date.between(2.days.ago, Date.today))
end
然后在项目文件夹控制台中运行rake db:seed
。
如果您在order.rb
文件中进行了一些验证,则可以创建new
的{{1}}个实例,然后将其保存为:
order