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

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

接受这种参数的方法的原型是什么?我怎么读呢?

推荐答案

如果您以散列语法将参数传递给Ruby函数,Ruby将假定这是您的目标.因此:

def login_success(hsh = {})
  puts hsh[:msg]
end

Ruby相关问答推荐

Ruby - 使用索引值识别和更新数组中的重复项

Ruby 避免类方法并保持其类型系统简单优雅的秘诀

Ruby 中的内联注释

如何从 url 获取文件扩展名?

如何通过 Rack 提供静态文件?

如何在 Ruby 中生成子进程?

Rails 类 << self

Python 是否在 Ruby 中进行类似于字符串 #{var}的变量插值?

仅针对特定参数的 Rspec 存根方法

如何从 SystemStackError 中获取回溯:堆栈级别太深?

RSpec:我如何在期望语法中使用数组包含匹配器

用 Ruby 解析 XML

当我将参数传递给脚本时,使用 gets() 会出现没有这样的文件或目录错误

我们什么时候在 Rails 中使用 "||=" 运算符?它的意义是什么?

`File` 对象访问模式的区别(即 w+, r+)

判断整数是否在范围内

类变量上的 attr_accessor

*nix 是什么意思?

将浮点数舍入到Ruby中最接近的整数

如何使用 Ruby 删除回车?