Как оценить не-SQL логику в вызове SQL с ActiveRecord? - PullRequest
0 голосов
/ 21 февраля 2011

Я новичок в 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? (возвращенныйrobot).

Итак, я ищу всех роботов, имя которых отличается от текущего, но хочу убедиться, что у меня их еще нет в целевом массиве этого робота.

1 Ответ

0 голосов
/ 21 февраля 2011

Ваш код может быть что-то вроде

t=robot.where(
      "name!= :robot_name and name not in (:target_names) ", 
      {
         :robot_name => self.name,
         :target_names => self.targets.map{|robot| robot.name}
      }
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...