Ruby将字符串转换为关键字参数

时间:2015-04-22 15:51:17

标签: ruby arguments keyword tostring

我在ruby中有一个函数,它采用以下形式的关键字参数:

def get_customer_information(name: nil, dob: nil, age: nil, state: nil)
   ... query db based on supplied parameters
end

用户可以为所有关键字参数指定1。还有一个命令行界面,用户可以通过调用命令行调用并传入以下格式的信息的键/值来利用此功能:

>GetCustomerInformation name=myName, dob=myDOB

解析参数并将其分为键和值。但是,我需要知道哪个关键字参数与命令行提供的输入相关联。有没有办法将字符串转换为关键字参数(例如,将名称转换为名称:),以便我不需要对每个参数执行字符串比较以确定它与哪个关键字参数关联,从而导致调用表单:

get_customer_information(name.to_keyword myName, dob.to_keyword myDOB)

或者这在红宝石中是不可能的?

1 个答案:

答案 0 :(得分:1)

您可以使用 .to_sym 方法。这是将字符串转换为符号的ruby函数方法。

或使用rails own,"符号名称" .parameterize.underscore.to_sym 。这会将字符串转换为:symbol_name 。这使用了rails命名约定。