Значения по умолчанию могут быть тем, что вы ищете:
def size(suggested_size="please choose a size")
Более подробную информацию о значениях по умолчанию можно найти в викибук . Они также просматривают списки аргументов переменной длины и опцию передачи хэша опций методу, которые вы можете увидеть во многих кодах Rails ...
Переменный список аргументов
Файл вендора / rails / activerecord / lib / active_record / base.rb, строка 607:
def find(*args)
options = args.extract_options!
validate_find_options(options)
set_readonly_option!(options)
case args.first
when :first then find_initial(options)
when :last then find_last(options)
when :all then find_every(options)
else find_from_ids(args, options)
end
end
Опции Hash
Файл вендора / rails / activerecord / lib / active_record / base.rb, строка 1361:
def human_attribute_name(attribute_key_name, options = {})
defaults = self_and_descendants_from_active_record.map do |klass|
"#{klass.name.underscore}.#{attribute_key_name}""#{klass.name.underscore}.#{attribute_key_name}"
end
defaults << options[:default] if options[:default]
defaults.flatten!
defaults << attribute_key_name.humanize
options[:count] ||= 1
I18n.translate(defaults.shift, options.merge(:default => defaults, :scope => [:activerecord, :attributes]))
end
Атрибуты объекта
Если вы ищете дополнительные атрибуты в объекте, вы можете написать метод получения и установки в вашем классе:
Class TShirt
def size=(new_size)
@size = new_size
end
def size
@size ||= "please choose a size"
end
end
Тогда вы можете просто вызвать use tshirt.size = "xl" и tshirt.size для экземпляра вашего класса TShirt.