Ruby 1.9.3 で Rails 3.2.10 を実行しています。PostgreSQL をデータベースとして使用し、RubyMine を使用してコードをデバッグしています。デバッグ中に、次の行に気付きました。
@monkeys = Monkey.where(user_id: 2)
2 つのデータベース呼び出しを行い、次のログを生成します。
Monkey Load (0.6ms) SELECT "monkeys".* FROM "monkeys" WHERE "monkeys"."user_id" = 2
Monkey Load (1.4ms) SELECT "monkeys".* FROM "monkeys" WHERE "monkeys"."user_id" = 2 AND "monkeys"."is_active" = 't' LIMIT 1
なぜ2回目の電話?どうすれば回避できますか?
これはモンキー モデルの移行です。
class CreateMonkeys < ActiveRecord::Migration
def change
create_table :monkeys do |t|
t.belongs_to :user, null: false
t.belongs_to :monkey_template, null: false
t.boolean :is_redeemed, null: false, default: false
t.boolean :is_active, null: false, default: true
t.datetime :activation_time
t.datetime :expiration_time
t.datetime :redemption_time
t.timestamps
end
add_index :monkeys, :user_id
end
end
アップデート
サーバーを再起動しましたが、受け入れられた回答が示唆するように機能します。