Я новичок в Ruby (Ruby 1.9.3 / RoR 3.2). Я написал эту функцию, чтобы создать граватар.
def gravatar_for(user, options = { size: 50, default: 'identicon' } )
gravatar_id = Digest::MD5::hexdigest(user.email.downcase)
s = options[:size]
d = options[:default]
gravatar_url = "http://gravatar.com/avatar/#{gravatar_id}.png?s=#{s}&d=#{d}"
image_tag(gravatar_url, alt: user.name, class: 'gravatar')
end
Звонок <%= gravatar_for user %>
работает. Вызов <% = gravatar_for user, size = 30%> приводит к потере опции по умолчанию identicon
. Я предполагаю, что это потому, что хэш в определении метода перезаписывается хэшем, который я передаю от вызывающей стороны.
Как я могу сделать так, чтобы я мог передать некоторые опции, в то время как другие по умолчанию соответствуют тому, что указано в определении метода? Я хочу позвонить <%= gravatar_for user, size: 30 %>
и заставить его вернуть граватар с размером 30 и в стиле identicon
, хотя этот аргумент был опущен в вызывающей стороне.