2011-08-10 8 views
-2

私は変更されたイメージを扱うGemを持っています。私は古いイメージを更新するためにそれを変更したいが、私はオブジェクトidを得ることができる必要がある。ライブラリのrubyとdef respond_to?(メソッド、* args、&ブロック)のヘルプ

今、それは次のコードを使用しています:

def respond_to?(method,*args, &block) 
puts ("++++METHOD #{method.to_s} ARGS #{args} BLOCK #{block}") 
args.each do |value| 
    puts ("ARGS #{value}") 
end 

を私は私が渡し何かからIDを取得する方法がわからないでも、私は内のidを渡す方法を知って、私は を試してみました@asset.image.s_245_245(:asset_id=>@asset.id)成功しません。 Argsは何も返しません。私は間違って何をしていますか?

更新:これはあまりにも空白返さ:私は現在、http://www.simonecarletti.com/blog/2009/09/inside-ruby-on-rails-extract_options-from-arrays/

アップデートを読んでいます。

答えて

2

あなたの質問は非常に不明です。メソッドrespond_to?は、オブジェクトIDの問題にどのように関連していますか?

私は今あなたがrespond_to?を呼び出すことはありませんのでは、実際にあなたがmethod_missingを上書きしたいを推測していますか、それはあなたの例で示されていません。

あなたは、このようなメソッドを定義していない場合は、image.s_245_245を呼び出すと、あなたがrespond_to?のために使用されるパラメータでmethod_missingimageオブジェクトで)をトリガーします。

はあなたには、いくつかのコールを処理するためにmethod_missingを使用する場合、その後、あなたはrespond_to?を変更し、method_missingによって処理する方法のために尋ねられたとき、それはtrueを返し作るべきであると述べているルール、があります。オブジェクトIDとして

、二つの可能性がある。

  • はルビーのすべてのオブジェクトは、.object_idに応答する(各オブジェクトの内部識別子を返す)
  • ActiveRecordのオブジェクトは、一次である(.idに応答データベース内のキー)。

私はあなたがmethod_missingの代わりrespond_to?の実験を開始した場合にあなたが欲しいどれ知っていると仮定ので、これは、単にサイドノートです。

+0

ご不明な点がありましたら申し訳ありませんが、はい、私が欲しかったのは方法の欠如でした。 –

関連する問題