1

seed.rbファイルにいくつかのSQLステートメントを使用してRailsアプリケーションをシードしようとしています。12個の値が提供されていますが、テーブルには15個の列があります。追加の3つの列は、自動生成されたid、created_atであり、Railsにデフォルトで含まれている列で更新されます。次のようにseed.rbファイルでカスタムSQLステートメントを実行すると...

connection = ActiveRecord::Base.connection()
query = "random sql"
connection.execute(query)

Railsは、私が作成した場合のように、これらの列を作成しません。

Employee.create!(name: "Joe")

seed.rbでsqlステートメントを実行するときに、id列とtimestamp列に値を入力する必要があることをレールに示す方法はありますか?

4

1 に答える 1

0

いいえ、Railsには"random sql"ID/タイムスタンプを入力するためのレコードを作成するかどうかを知る方法がないためです。

あなたが一人でいるときconnection.execute、あなたはあなたのORMを見捨てて、SQLの誘惑に屈しました。

ActiveRecordを使用してそれを行うことができる場合は、そうしてください!そうでない場合は、それがRailsでSQLにドロップダウンできる理由です(ただし、もう一度考えてみてください。本当にRubyで記述できないのでしょうか?)。

于 2013-01-16T01:08:20.933 に答える