Forum: Ruby on Rails undefined method ... from `alias_method'

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
3125c77bab66fa37dfdbe78eb29339b6?d=identicon&s=25 Dean (Guest)
on 2007-02-26 09:12
(Received via mailing list)
0 wicked var/www % ./script/console
Loading development environment.
>> r = Recipe.find :first
NameError: undefined method `recipe_type=' for class `Recipe'
        from ./script/../config/../config/../app/models/recipe.rb:
101:in `alias_method'

In recipes_controller:

alias_method :orig_recipe_type=, :recipe_type=
def recipe_type=(t)
  if t.nil?
    self.orig_recipe_type = guess_recipe_type
    self.recipe_type_is_guess = true
  else
    self.orig_recipe_type = t
    self.recipe_type_is_guess = false
  end
end

recipe_type is a column in my recipes table.  Does this happen because
AR uses method_missing to do recipe_type=?  Can I get around this?

Thanks,
--Dean
B8dbb1987e8e5318584865f880036796?d=identicon&s=25 Chris Wanstrath (defunkt)
on 2007-02-26 10:05
(Received via mailing list)
On 2/26/07, Dean <dean.brundage@gmail.com> wrote:

> recipe_type is a column in my recipes table.  Does this happen because
> AR uses method_missing to do recipe_type=?  Can I get around this?

Correct.  Use super.

http://errtheblog.com/post/20

def recipe_type=(t)
  if t.nil?
    super guess_recipe_type
    self.recipe_type_is_guess = true
  else
    super t
    self.recipe_type_is_guess = false
  end
end

--
Chris Wanstrath
http://errtheblog.com
3125c77bab66fa37dfdbe78eb29339b6?d=identicon&s=25 Dean (Guest)
on 2007-02-26 18:48
(Received via mailing list)
On Feb 26, 1:04 am, "Chris Wanstrath" <c...@ozmm.org> wrote:
>   if t.nil?
>     super guess_recipe_type
>     self.recipe_type_is_guess = true
>   else
>     super t
>     self.recipe_type_is_guess = false
>   end
> end
>
> --
> Chris Wanstrathhttp://errtheblog.com

Thanks for the reply Chris and the follow up explanation.  That
explains why alias_method works for my association assignments  :-)

--Dean
This topic is locked and can not be replied to.