ruby hash如果修饰符添加键/值

den*_*icz 6 ruby hash

我正在使用hash包含键/值对的ruby 来在我的MailChimp API中创建新订阅者.

user_information = {
    'fname' => 'hello world',
    'mmerge1' => 'Product X' if user.product_name.present?
}
Run Code Online (Sandbox Code Playgroud)

显然,我得到的语法错误syntax error, unexpected modifier_if...我基本上只想添加mmerge1基于条件为真的.

mea*_*gar 11

你不能if在哈希初始化块中使用这种方式.初始化哈希后,您必须有条件地添加新的键/值:

user_information = {
    'fname' => 'hello world',
}

user_information['mmerge1'] = 'Product X' if user.product_name.present?
Run Code Online (Sandbox Code Playgroud)