如何使用ROR比较块内的两个值?

时间:2014-02-01 16:38:29

标签: ruby-on-rails ruby

我的应用中有两个型号,用户和结果。结果属于User。为了创建Result记录,我必须验证用户是否存在。

如果用户存在,我想在相应的用户帐户中创建结果记录。否则,我想创建一个新用户,然后创建属于他的结果记录。

结果数据来自XML文档,并且有一个电子邮件节点,我可以将其用作标识符来创建记录。

我认为解决方案是将User表中的email属性与XML中的Result email节点进行比较。

如何构建一个块来比较User.email和Result.email?

e.g:

if user.email == result.email
  # create record on table result
else
  # create user and create record on table result
end

1 个答案:

答案 0 :(得分:1)

Result.all.each do |result|
  user = User.where(:email => result.email).first_or_create
  result.update_column(:user_id => user.id)
end