我正在创建一个简单的费用表,ActiveRecord 方法似乎都不适用于创建数据对象并传递参数。我以前做过同样的事情,没有任何问题,它适用于现有的表,所以我必须遗漏一些简单的东西(我是新手)。
这是我所做的:1)创建了一个迁移:
rails generate migration create_expenses
2)修改迁移:
class CreateExpenses < ActiveRecord::Migration
def up
create_table 'expenses' do |t|
t.string :description
t.date :date
t.timestamps
end
end
def down
drop_table 'expenses'
end
end
3) 迁移
rake db:migrate
4) 创建模型
class Expense < ActiveRecord::Base
end
5)测试并尝试创建费用
testexp= Expense.create!(description: "Test Expense", date: "9/27/12")
SQL (1.7ms) INSTERT INTO "expenses" ("created_at", "date", "description", "updated_at") VALUES (?,?,?,?) [["created_at", Thu, 27 Sep 2012 13:50:47 UTC +00:00],["date", nil], ["description", nil], ["updated_at", Thu, 27 Sep 2012 13:50:47 UTC +00:00]]
=> #<Expense id: 1, description:nil, date:nil, created_at: "2012-09-27 13:50:47", updated_at: "2012-09-27 13:50:47">
*我已经尝试了所有不同形式的散列、创建、新建等。似乎都不起作用。创建后,我可以通过 testexp.description = "Test Expense", testexp.save 更改值。
任何帮助将不胜感激!