我正在创建一个简单的费用表,并且没有一个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更改值。
非常感谢任何帮助!
答案 0 :(得分:1)
您的数据库似乎确实存在且正在查找,因此新创建的记录 我认为你可能遇到的问题是当你进行创建时你没有正确添加参数,它应该看起来像这样:
Expense.new(:description => "Test Expense", :date => "9/27/12")