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

···

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

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

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

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
--
Posted via http://www.ruby-forum.com/\.

Rob Biedenharn http://agileconsultingllc.com
Rob@AgileConsultingLLC.com

···

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

Thanks Rob

···

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

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

···

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