Undefined method ... from `alias_method'


#1

0 wicked var/www % ./script/console
Loading development environment.

r = Recipe.find :first
NameError: undefined method recipe_type=' for classRecipe’
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


#2

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


#3

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 :slight_smile:

–Dean