我是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?
(返回的机器人)。
所以我正在搜索所有名称与当前名称不同的机器人,但是要确保我在这个机器人的目标阵列中没有它们。
答案 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}
}
)