2012-02-26 11 views
1

私はActiveRecord APIとhttp://guides.rubyonrails.org/active_record_querying.html#find-or-build-a-new-objectのガイドにあるfirst_or_create関数の使用を開始したいと思います。しかし、Railsはこの機能を認識していないふり:Rails 3.0.7でfirst_or_createが定義されていませんか?

irb(main):017:0> EoWord.where("id = 110") 
=> [#<EoWord id: 110, word: "abatino", wordtype: "substantivo", topic: "pregado, homo">] 
irb(main):018:0> EoWord.where("word = 'abatino'").first_or_create 
NoMethodError: undefined method `first_or_create' for #<ActiveRecord::Relation:0x1ccf578> 
     from E:/Ruby193/lib/ruby/gems/1.9.1/gems/activerecord-3.0.7/lib/active_record/relation.rb:374:in `method_missing' 
     from (irb):18 
     from E:/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/commands/console.rb:44:in `start' 
     from E:/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/commands/console.rb:8:in `start' 
     from E:/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/commands.rb:23:in `<top (required)>' 
     from script/rails:6:in `require' 
     from script/rails:6:in `<main>' 

私はWindows環境下でのRails 3.0.7を実行していますよ。あなたの助けが大いにありがとう!

答えて

4

はい、このメソッドはRails 3.0.7では未定義です。

このメソッドは、Rails 3.2.1にのみ、APIDock's documentationに従って存在します。 Railsのバージョンをアップグレードする必要があります。

+0

私は同じことを言うつもりだった。 :)あなたが何かの理由でレール3.0.7についていて、それを使いたい場合は、1行の方法です。 –

+0

ありがとう!ガイドページの上部に「このガイドはRails 3.0に基づいています。ここに示すコードの一部は、他のバージョンのRailsでは動作しません」と記載されています。私はRailsのバージョンが間違っているとは考えていませんでした。とにかく、私はアップグレードし、それは動作します。 – Sprachprofi

関連する問題