Как использовать named_scope, чтобы ограничить записи теми, которые не являются пустыми? - PullRequest
1 голос
/ 08 марта 2011

Я создал приложение Ruby on Rails (2.3.9), которое позволяет пользователям отслеживать тренировки. Я пытаюсь вернуть только записи из моей таблицы Workout, которые имеют значение в столбце video_link. (workout.video_link является строкой и содержит веб-адрес).

Я использовал named_scope для ограничения записей раньше, но только для столбцов, которые были целыми числами, я не уверен, как это сделать со строкой, поскольку IS NOT NULL, очевидно, здесь не будет работать.

Как мне написать область действия в workout.rb, чтобы сделать такую ​​вещь?

Ответы [ 2 ]

1 голос
/ 08 марта 2011

Улучшение на примере Пан Томакос:

class Workout
  named_scope :with_link, :conditions => 'LENGTH(TRIM(video_link)) > 0'
end
1 голос
/ 08 марта 2011

Вы можете указать условия в виде строки для проверки IS NOT NULL:

class Workout
  named_scope :with_link, :conditions => "video_link IS NOT NULL AND video_link != ''"
end
...