Запитання з тегом «arel»

5
Рейки, в яких умова, використовуючи NOT NIL
Використовуючи стиль рейки 3, як би я написав протилежне: Foo.includes(:bar).where(:bars=>{:id=>nil}) Я хочу знайти, де id НЕ нульовий. Я намагався: Foo.includes(:bar).where(:bars=>{:id=>!nil}).to_sql Але це повертається: => "SELECT \"foos\".* FROM \"foos\" WHERE (\"bars\".\"id\" = 1)" Це точно не те, що мені потрібно, і майже здається, що помилка в ARel.

8
Хочете знайти записи без пов'язаних записів у 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 => :contacts, :uniq => true end …

8
Поєднайте два об’єкти ActiveRecord :: Relation
Припустимо, у мене є наступні два об'єкти: first_name_relation = User.where(:first_name => 'Tobias') # ActiveRecord::Relation last_name_relation = User.where(:last_name => 'Fünke') # ActiveRecord::Relation чи можна поєднати два відношення для отримання одного ActiveRecord::Relationоб'єкта, що містить обидві умови? Примітка. Я усвідомлюю, що я можу зв'язати ланцюги, щоб отримати таку поведінку, і мене справді цікавить …

3
Як зробити запит 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'%'; Arel обертає рядок запиту 'Smith' правильно, але оскільки це твердження LIKE, воно не …

4
Що таке Arel in Rails 3.0?
Я розумію, що це заміна ActiveRecord і що вона використовує об’єкти замість запитів. Але ... чому це краще? чи буде "простіше" створювати об'єкти / запити? чи це призведе до більш ефективних запитів SQL? чи буде він сумісним з усіма основними БД? - Я припускаю, що буде. це буде простіше / …

5
Підзапити в активному записі
За допомогою SQL я можу легко робити такі запити User.where(:id => Account.where(..).select(:user_id)) Це дає: SELECT * FROM users WHERE id IN (SELECT user_id FROM accounts WHERE ..) Як я можу це зробити за допомогою рейок 3 activerecord / arel / meta_where? Мені потрібні / потрібні реальні підзапити, без обхідних шляхів …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.