Вопросы с тегом «arel»

359
Рельсы, где условие с использованием NOT NIL

Используя стиль rails 3, я бы написал противоположность: Foo.includes(:bar).where(:bars=>{:id=>nil}) Я хочу найти, где идентификатор не ноль. Я старался: Foo.includes(:bar).where(:bars=>{:id=>!nil}).to_sql Но это возвращает: => "SELECT \"foos\".* FROM \"foos\" WHERE (\"bars\".\"id\"...

178
Хотите найти записи без связанных записей в Rails

Рассмотрим простую ассоциацию ... class Person has_many :friends end class Friend belongs_to :person end Какой самый чистый способ получить всех людей, у которых НЕТ друзей в ARel и / или meta_where? А потом насчет has_many: через версию class Person has_many :contacts has_many :friends, :through...

115
Как сделать LIKE-запрос в Arel и Rails?

Я хочу сделать что-то вроде: SELECT * FROM USER WHERE NAME LIKE '%Smith%'; Моя попытка в Ареле: # params[:query] = 'Smith' User.where("name like '%?%'", params[:query]).to_sql Однако это становится: SELECT * FROM USER WHERE NAME LIKE '%'Smith'%'; Арел правильно оборачивает строку запроса «Смит», но...

86
Что такое Arel в Rails 3.0?

Я понимаю, что это замена ActiveRecord и что он использует объекты вместо запросов. Но... почему так лучше? будет ли "легче" создавать объекты / запросы? приведет ли это к более эффективным SQL-запросам? будет ли он совместим со всеми основными БД? - Думаю, будет. будет ли проще / сложнее...

81
Подзапросы в activerecord

С SQL я легко могу выполнять такие подзапросы User.where(:id => Account.where(..).select(:user_id)) Это производит: SELECT * FROM users WHERE id IN (SELECT user_id FROM accounts WHERE ..) Как я могу это сделать с помощью rails '3 activerecord / arel / meta_where? Мне нужны / нужны настоящие...