attr_accessor default values
Rails has attr_accessor_with_default so you could write
class Like
attr_accessor_with_default :politics,false
end
i = Like.new
i.politics #=> false
and thats all
UPDATE
attr_accessor_with_default has been deprecated in Rails 3.2.. you could do this instead with pure Ruby
class Like
attr_writer :politics
def politics
@politics || false
end
end
i = Like.new
i.politics #=> false
You could use the virtus gem:
https://github.com/solnic/virtus
From the README:
Virtus allows you to define attributes on classes, modules or class instances with optional information about types, reader/writer method visibility and coercion behavior. It supports a lot of coercions and advanced mapping of embedded objects and collections.
It specifically supports default values.