怎么创建一个接受参数散列的ruby method?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (11)

我知道这可能是一个愚蠢的问题,但我不知道如何创建一个接受散列参数的ruby方法。在Rails中,我想使用像这样的method:

login_success :msg => "Success!", :gotourl => user_url

提问于
用户回答回答于

如果将参数传递给哈希语法中的Ruby函数,那么Ruby会认为这是目标。从而:

def login_success(hsh = {})
  puts hsh[:msg]
end
用户回答回答于

如果散列参数是函数的最后一个参数,那么只能使用散列字符{}的语法。

def login_success(name, hsh)
  puts "User #{name} logged in with #{hsh[:some_hash_key]}"
end

你可以用它来调用

login_success "username", :time => Time.now, :some_hash_key => "some text"

扫码关注云+社区