ruby-on-rails - Rails语法错误为每个循环分配一个变量

标签 ruby-on-rails ruby ruby-on-rails-3

我正在尝试通过执行以下操作将其分配给变量来创建要发送外部请求的收件人列表:

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/

相关文章:

javascript - 如何处理浏览器尚未调用代码的 SJR 响应?

Javascript 分配 ruby​​ on Rails 表单值

ruby-on-rails - 何时开始考虑部署我的 Rails 应用程序

ruby-on-rails - rails : Assign extra columns in HABTM join model

ruby-on-rails - 如何覆盖 lib/spree/search/base.rb

ruby-on-rails - Openlayers 标记

ruby-on-rails - 如何解析和格式化YouTube API数据

ruby-on-rails - 如何为 datetime_select 助手设置时区

Rails 3.1 Asset Pipeline 中的 Javascript 文件

ruby-on-rails - 我正在使用 RVM,使用 bundle install 和 rvm bundle install 有什么区别?