Solved my own problem....
for anyone else with the same issue, update_attributes cheks to see if
the attribute exists by querying responds_to?(attr_name)
It was necessary to overload that method to get it working. On to the
next problem.
Brian
On Mar 16, 12:23 am, PsiPro
<arjes...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
wrote:> 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
--
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.