Mon proprety isn't a string?

Hi,
I would simply like to remove spaces of the property “name” before save
and update.
So i did the code below, but i get this error when I save or update a
tag.
#error
undefined method `strip’ for nil:NilClass

#Tag class
class Tag < ActiveRecord::Base
has_and_belongs_to_many :students

attr_accessible :name

validates_uniqueness_of :name

before_save :remove_spaces
before_update :remove_spaces

private
def remove_spaces
name = name.strip
end

end

This is how i save or update my tag
#From another class
def tag_attributes=(tags_att)
splits = tags_att.split(’,’)
splits.each do |tag|
if !tags.find_by_name(tag)
tags.build(:name => tag)
end
end
end

Thanks Rob

On Feb 14, 2010, at 3:37 PM, Greg Ma wrote:

class Tag < ActiveRecord::Base
has_and_belongs_to_many :students

attr_accessible :name

validates_uniqueness_of :name

before_save :remove_spaces
before_update :remove_spaces
before_save will catch both create and update

private
def remove_spaces
name = name.strip
self.name = self.name.strip

the "name = " part is enough to trick the interpreter into treating
‘name’ as a local rather than a bare method call. Using self.name
forces the treatment as a method.

-Rob

splits.each do |tag|
if !tags.find_by_name(tag)
tags.build(:name => tag)
end
end
end

Posted via http://www.ruby-forum.com/.

Rob B. http://agileconsultingllc.com
[email protected]

Or perhaps clearer:

def remove_spaces
name.strip!
end

If there’s any chance that name could actually be nil, then

def remove_spaces
name.strip! if name
end