1

単純な経費テーブルを作成していますが、データ オブジェクトを作成してパラメータを渡す 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 で値を変更できます。

どんな助けでも大歓迎です!

4

1 に答える 1

1

データベースが存在し、機能しているように見えるため、新しいレコードが作成されます。
あなたの問題は、作成時にパラメーターを適切に追加しないことだと思います。実際には次のようになります。

Expense.new(:description => "Test Expense", :date => "9/27/12")
于 2012-09-27T14:35:23.060 に答える