Rails(3.2)アプリでは、次のようなモデルにクラスメソッドがあります。
def import(level, max = 10)
db = ActiveRecord::Base.connection
result = db.execute("SELECT word FROM levels WHERE level == #{level} AND word NOT IN (SELECT entry FROM words) limit #{max};");
まだWordレコードとして存在しない10個の新しい単語を一度にインポート(10個のレコードを作成)するだけです。
スキーマは次のようになります。
create_table "levels", :force => true do |t|
t.string "word"
t.integer "level"
end
create_table "words", :force => true do |t|
t.string "entry"
t.integer "level", :default => 0
t.text "definition"
t.string "thesaurus", :default => "none"
end
私はSQLの初心者です。Rails dbconsole(sqlite3、サーバーでもsqlite3を使用しています)をいじって、どういうわけか上記の生のsqlクエリを思いつきました。私はアレルでも同じことができることを知っています。ActiveRecordでクエリを作成するにはどうすればよいですか?