Hello all,
I'm tinkering around with method_missing, and have run into a problem.
I'm trying to create virtual columns so plugins like formtastic work properly with this model.
I plan on wrapping all attributes related to this project with the name "option_*", as such I have changed method missing to the following:
... def method_missing(method, *arguments, &block) logger.info "Looking for #{method}" if method.to_s =~ /option_(.+)/ process_option_method(method, *arguments) else super end end def process_option_method(method, *arguments) if method.to_s =~ /option_(.+)=/ return set_option($1, *arguments.first) elsif method.to_s =~ /option_(.+)/ return get_option($1, false) end end ..
now get_option and set_option work as expected, and the setter part of the above code also works. However when a form is submitted with a field option_foo i get the error "unknown attribute: option_foo".
The logger input above indicates that method_missing is not called, and the stack trace confirms this. The stack trace indicates that when update_attributes is called, it never gets around to method missing.
So, I'm stuck. What would be the proper way to accomplish a dynamic setter method?
Brian