method_missingメソッドを記述しようとしています。メソッドを実行するときにハッシュをヒットし、値を返す一致が見つかった場合はキーを参照する必要があります。続けてください。ハッシュは、値が決して決して決してないように私が書いたSQLクエリから移入されます。Rails Method_missingでハッシュ値を返す
例はそう@month_idが、私は多くの素材としてハッシュを使用してそこに、前にそれではない働いたことはない1を返します
@month_id.number_of_white_envelopes_made
ハッシュで
@data_hash[number_of_white_envelopes_made] => 1
ようになりますメソッドが見つからないときに戻す
EDIT:申し訳ありませんが、ハッシュでメソッドが見つからない場合は、メソッドエラーが表示されないように忘れています。
EDIT:大丈夫ので、私は離れてハッキングされ、これは私が
def method_missing(method)
if @data_hash.has_key? method.to_sym
return @data_hash[method]
else
super
end
end
が出ているものですが、より良い方法はありますか?
方法[OpenStruct]使用について(http://www.ruby-doc.org/
ですstdlib-1.9.3/libdoc/ostruct/rdoc/OpenStruct.html)代わりに? 'OpenStruct'のインスタンスをハッシュから初期化し、その属性を' struct.attribute'構文を使って参照することができます。値がない場合、単に 'nil'を返しますが、そうでなければあなたのために働くかもしれません。 –
@ KL-7 +1 OpenStructは、その下に 'method_missing'を使用します。 – steenslag
問題は、あまりにも150のキーが近すぎるということですか?構造体を作成することで、より多くの作業が可能になります。私はそれがプレゼンターに配置されているので、メソッドがいくつかのメソッドが使用され、他のメソッドが使用され、使用されることがあります。そして、いったん欠落したメソッドが呼び出されるとメソッドが定義され、それはメモリ内に保存されていると呼ばれる時には – TheLegend