【发布时间】:2012-03-02 15:01:28
【问题描述】:
我是 Ruby 新手(Ruby 1.9.3 / RoR 3.2)。我写了这个函数来创建一个 gravatar。
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 %> 有效。调用 会导致默认选项 identicon 丢失。我认为这是因为方法定义中的哈希被我从调用者传入的哈希覆盖。
我怎样才能使我可以传递 一些 选项,而其他选项默认为方法定义中指定的内容?我想调用 <%= gravatar_for user, size: 30 %> 并让它返回一个大小为 30 且样式为 identicon 的 gravatar,即使调用者省略了该参数。
【问题讨论】: