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.
Dean (Guest)
on 2007-02-26 10: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
Chris W. (Guest)
on 2007-02-26 11:05
(Received via mailing list)
On 2/26/07, Dean <removed_email_address@domain.invalid> 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 W.
http://errtheblog.com
Dean (Guest)
on 2007-02-26 19:48
(Received via mailing list)
On Feb 26, 1:04 am, "Chris W." <removed_email_address@domain.invalid> 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 W.http://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.