如何使用ActiveRecord评估SQL调用中的非SQL逻辑?

时间:2011-02-21 03:26:58

标签: ruby sqlite activerecord

我是Ruby新手并尝试进行ActiveRecord where调用。 我还想在调用期间评估逻辑,以便在SQL查询和我的逻辑为真时返回一个返回的对象。

def new_target
  #Need to make sure the array doesn't include the existing target
  t = robot.where(
    "name != :robot_name",
    {:robot_name => self.name}
  ).first

我想说!self.targets.include?(返回的机器人)。

所以我正在搜索所有名称与当前名称不同的机器人,但是要确保我在这个机器人的目标阵列中没有它们。

1 个答案:

答案 0 :(得分:0)

您的代码可以是

t=robot.where(
      "name!= :robot_name and name not in (:target_names) ", 
      {
         :robot_name => self.name,
         :target_names => self.targets.map{|robot| robot.name}
      }
)