2012-03-04 9 views
2

(1 0)の引数の間違った番号を言って、モデルを破壊しようとすると:私は、なぜ私はこのエラーを取得していますかわからない

wrong number of arguments (0 for 1) 

app/models/user.rb:38:in `sign_out_by_guid' 
app/helpers/user_helper.rb:11:in `sign_out' 
app/controllers/users_controller.rb:18:in `destroy' 

マイコード:

def self.sign_out_by_guid(guid) 
    puts 'currently in sign_out_by_guid' + guid 
    u = User.where("guid = ?", guid) 
    puts u.inspect 
    puts 'before destroy' 
    u.destroy 
    puts 'called destroy' 
    end 

私がすることができます出力は、最後の1のために期待するすべてのプット

は、これは u.destroyへの呼び出しが問題であることを確認するための手段「と呼ばれるが、破壊する」を参照してください。

私はrails console内のレコードを取得し、それが正常に動作し、ユーザーに破壊呼び出ししよう。

これは何ですか?

答えて

13

uUserのコレクションですが、destroyは、単一のユーザーに、またはUserrelation with an argument denoting the IDに呼び出す必要があります。あなたは行うことができ、次のいずれか

u = User.where("guid = ?", guid).first 

または

u = User.find_by_guid(guid) 
+2

であることを確認してくださいさて、これはあなたの質問に答えるのですか? [upvote /あなたの質問への回答を受け入れることを忘れないでください](http://meta.stackexchange.com/a/5235/158402) ':)' –

0

チェックuser.rb. はあなたのparamsは

dependent: :destroy 

ない

dependent: destroy 
関連する問題