我正在尝试通过执行以下操作将其分配给变量来创建要发送外部请求的收件人列表:
recipients = @items.each do |item|
{"email"=>"#{Recipient.find_by_id(item.recip_id).email}", "amount"=>"#{item.price}"},
end
但是我收到了这个错误:
syntax error, unexpected ',', expecting '}'
我知道我所做的语法不正确。我是 Ruby 的新手,有人可以帮我找出正确的语法吗?
编辑:感谢您的输入。但是,如果我需要为每个项目做两次哈希怎么办?
recipients = @items.map do |item|
{"email"=>"#{Recipient.find_by_id(item.recip_id).email}", "amount"=>"#{item.price}"},
{"email"=>"#{Store.find_by_id(item.recip_id).email}", "amount"=>"#{item.price}"}
end
最佳答案
问题出在散列末尾的逗号上。此外,如果您想在收件人中存储电子邮件和金额,您应该使用 map 。这将返回一个包含电子邮件和金额的哈希数组:
recipients = @items.map do |item|
{"email"=> Recipient.find_by_id(item.recip_id).email, "amount"=> item.price}
end
此外,正如您可能注意到的,我不需要将电子邮件和价格的值作为字符串传递。
关于ruby-on-rails - Rails语法错误为每个循环分配一个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8860252/