動的属性を持つStyle
モデルがあります。これは、1つのフィールドに属性キーを入力し、次のフィールドに値を入力することで保存できます。
典型的なparamsハッシュは次のようになります。
{"utf8"=>"✓", "style"=>{"collection_id"=>"48", "program_id"=>"989", "number"=>"454632", "name"=>"t67f", "category_id"=>"19", "field_KEY"=>"VALUE"}, "commit"=>"save", "id"=>"4521"}
これは、クリックすると意図したとおりに機能し、"field_KEY" => "VALUE"
ペアはgetter( )メソッドfield_KEY
とsetter(field_KEY=
)メソッドを使用して新しい動的属性を作成します。
問題は次のとおりです。プロセスがキュウリでシミュレートされている場合、属性が設定される前に、ハッシュ内のすべてのキーに対してゲッターが呼び出されますfield_KEY
。
通常の属性はnil
新しいレコードに対して返されますが、のゲッターfield_KEY
はまだ作成されていないため、結果として
`UndefinedMethodError: undefined method 'field_KEY'`.
さて、私の質問です。ゲッターの発信者を追跡しfield_KEY
てキュウリをいじりまわすのか、それとも次のような偽のメソッドをシミュレートするのか。
def check_method(method_name)
if method_name =~ /^field_/
nil
else
... # let the Error be raised
end
より良いアイデアや解決策は大歓迎です
ありがとう