Tag: arel
Arel ist ein Relationaler Algebra für Ruby. Es vereinfacht die Erstellung komplexer SQL-Abfragen und es passt zu verschiedenen RDBMS-Systemen.
3
Antworten
Den folgenden code gebaut, eine gültige where - Klausel mit einer OR Betreiber in Rails 4.1 MyModel.where( MyModel.where(attribute1: 1, attribute2: 2).where_values.reduce(:or) ) Was in etwa äquivalent zu der SQL select * from my_models where (attribute1 = 1
3
Antworten
Gibt es Situationen, wo ActiveRecord stellt die alias-Tabelle name, wenn es gibt mehrere Verknüpfungen mit der gleichen Tabelle. Ich bin in einer situation stecken, wo diese Verknüpfungen enthalten die Bereiche (mittels 'merge'). Habe ich eine viele-zu-viele-Beziehung: Modelle
2
Antworten
Habe ich einige Bereiche definiert, die in ein Modell namens Veranstaltungen. Jetzt muss ich Ihnen beizutreten, mit ODER Betreiber. Ich bin mit Rails3 und ich bin ein wenig verwirrt mit ActiveRelation & Arel und wie und wie
1
Antworten
Kam ich auf dieses Verhalten in Schienen, die ich kann nicht scheinen, zu finden in der Dokumentation. Scheint es, dass, wenn Sie erschweren eine ActiveRecord-Abfrage zu dem Punkt, dass es Klumpen, die zugrunde liegende SQL in eine
1
Antworten
Möchte ich greifen Sie alle Kategorien enthalten purchaseable products. class Product < ActiveRecord::Base belongs_to :category scope :purchaseable, where(:available => true) end class Category < ActiveRecord::Base has_many :products scope :with_purchaseable_products, ????? end So, ich bin versucht zu definieren
3
Antworten
Habe ich eine app, die hat eine Reihe von Post Modellen, von denen jeder belongs_to eine User Modell. Wenn diese Beiträge veröffentlicht werden, eine PublishedPost Modell erstellt wird, dass belongs_to die relevanten Post Modell. Ich versuche zu
2
Antworten
Ich habe eine komplexe ActiveRecord-Abfrage, dass ich den Aufbau mit unterschiedlichen Bereichen, abhängig von der Auswahl des Benutzers. Ich bin mit 2 Edelsteinen, die scheint problematisch zu sein zusammen, aber ich kann nicht finden, wer der Täter
5
Antworten
Ich habe eine Abfrage, die braucht, um Ergebnisse, die NICHT aufeinander abgestimmt sind in einer sub-Abfrage. Die sub-Abfrage zurückgeben kann, wird ein leeres Ergebnis, so brauche ich, um einen Standardwert (z.B. 0) wenn der sub-query gibt eine
2
Antworten
Wie können Sie eine bedingte where-Klausel? Ich habe ein rake-task, der eine Abfrage ausführt. Sagen, ich bin beim erstellen einer Abfrage etwa so: residentials = Residential.where(:is_active => true) Nun, wenn ich vorbeigehe, einen bestimmten parameter der rake-task
5
Antworten
Mithilfe des rails-3-Stil, wie würde ich schreiben das Gegenteil: Foo.includes(:bar).where(:bars=>{:id=>nil}) Will ich finden, wo id ist NICHT null. Ich habe versucht: Foo.includes(:bar).where(:bars=>{:id=>!nil}).to_sql Aber das gibt: => "SELECT \"foos\".* FROM \"foos\" WHERE (\"bars\".\"id\" = 1)" Das ist definitiv
4
Antworten
Den ich getroffen habe, eine leichte block mit der neuen scope Methoden (Arel 0.4.0, Rails 3.0.0.rc) Grundsätzlich habe ich: Einen topics Modell, das has_many :comments, und ein comments Modell (mit einer topic_id Spalte), die belongs_to :topics. Ich
3
Antworten
Gegeben class Category < ActiveRecord::Base has_many :products, :order => 'name ASC' end Mithilfe des Rails-3-stack, wie kann ich die Abfrage für alle Kategorien, die 'haben' - Produkte? InformationsquelleAutor Jan | 2010-09-17
1
Antworten
Ich habe zwei Modelle - Banner und BannerType. Ihre schema sieht wie folgt aus: Banner # Table name: banners # # id :integer not null, primary key # name :string(255) # image :string(255) # created_at :datetime not
3
Antworten
So, ich habe diese verrückte Idee, dass ich wollte, um einen Bereich anwenden, um eine inklusive Verband. Dies ist, was ich herausgefunden, und es scheint zu funktionieren: class Event < ActiveRecord::Base has_many :races has_many :bad_races, :conditions =>
2
Antworten
Ist es möglich, kombinieren Sie mehrere CTEs in einzelne Abfrage mit arel? Ich bin auf der Suche nach Weg, um bekommen Ergebnis wie dieses: WITH 'cte1' AS ( ... ), WITH RECURSIVE 'cte2' AS ( ... ),
6
Antworten
Das ist also eher eine arel Frage als alles andere, aber hier ist was ich zu tun versuche. Habe ich drei Objekte können sagen, genannt Elemente <Item id: 1, name: 'Book'> <Item id: 2, name: 'Car'> <Item
4
Antworten
Mit SQL kann ich einfach die sub-queries wie diese User.where(:id => Account.where(..).select(:user_id)) Diese produziert: SELECT * FROM users WHERE id IN (SELECT user_id FROM accounts WHERE ..) Wie kann ich dies tun, mit Schienen' 3 activerecord/arel/meta_where? Ich
4
Antworten
Ich verstehen, dass es ein Ersatz für ActiveRecord und mit Objekten anstelle von Abfragen. Aber... warum ist das besser? werden Objekte/Abfragen "einfacher" zu erstellen? wird es dazu führen, dass effizientere SQL-Abfragen? wird es sein, kompatibel mit allen
1
Antworten
Diese gibt die maximale Wertnicht den kompletten Datensatz: self.prices.maximum(:price_field) Aktuell finde ich den Datensatz wie folgt: def maximum_price self.prices.find(:first, :conditions => "price = #{self.prices.maximum(:price_field)}" ) end Ist das der richtige Weg ? Da oben braucht es zwei
5
Antworten
Ich Hänge schon länger an einem problem, vor kurzem für eine kleine Weile, und meinen Weg gefunden, um Arel, die wie es aussieht, soll mir erlauben, das zu tun, ODER ist in meinen Abfragen. Als Ausgangspunkt, die
4
Antworten
Setup Schienen' where Methode kann ein Bereich in einem hash zu generieren eine Abfrage, die Suche nach einem Wert, der innerhalb der Reihe. Zum Beispiel: User.where(cash_money: 10..1000) #=> SELECT `users`.* FROM `users` WHERE (`users`.`cash_money` BETWEEN 10 AND
4
Antworten
Muss ich einfügen, um ein array von E-Mails als verschiedene Datensätze in meine Tabelle "Kontaktpersonen". Wie kann das getan werden. Eg: @email = ["
[email protected]", "
[email protected]", "
[email protected]", ... ] Möchte ich nicht verwenden. @email.each do |email| @contact =
2
Antworten
Habe ich ein Modell Beziehung, wo today hat viele tasks Ich versuche zum abrufen eines Benutzers today Objekt, geben Sie auch die tasks und machen Sie alle zu Json. Dies alles war Super, bis ich beschloss, dass
6
Antworten
Was ist der beste Weg, um Datensätze zu finden, die doppelte Werte in einer Spalte mit Rubin und die new Activerecord? InformationsquelleAutor der Frage srboisvert | 2011-02-24
9
Antworten
Angenommen ich habe folgende zwei Objekte: first_name_relation = User.where(:first_name => 'Tobias') # ActiveRecord::Relation last_name_relation = User.where(:last_name => 'Fünke') # ActiveRecord::Relation ist es möglich, kombinieren Sie die beiden Beziehungen ist zur Erzeugung einer ActiveRecord::Relation - Objekt enthält sowohl
5
Antworten
Mithilfe des rails-3-Stil, wie würde ich schreiben das Gegenteil: Foo.includes(:bar).where(:bars=>{:id=>nil}) Will ich suchen, in denen id NICHT null ist. Ich habe versucht: Foo.includes(:bar).where(:bars=>{:id=>!nil}).to_sql Aber das gibt: => "SELECT \"foos\".* FROM \"foos\" WHERE (\"bars\".\"id\" = 1)" Das ist
5
Antworten
Ich bin versucht, nest SELECT-Abfragen in Arel und/oder Aktiven Datensatz in Rails 3 zu erzeugen die folgenden SQL-Anweisung. SELECT sorted.* FROM (SELECT * FROM points ORDER BY points.timestamp DESC) AS sorted GROUP BY sorted.client_id Einen alias für
4
Antworten
Do association Methoden, wie diese definiert durch has_many und belongs_to nutzen ActiveRecord::Relation? Wenn dem so ist, ist es möglich, den ActiveRecord::Relation - Objekt, das verwendet wird. Wir sind uns alle bewusst, dass die Schienen 3 ist stark
4
Antworten
Wo ich verwendet, um dies zu tun: Foo.find_by_bar('a-value') Kann ich jetzt tun: Foo.where(:bar => 'a-value').limit(1).first Ist diese zu empfehlen? Ist dies der beste Weg? Soll ich weiterhin den "alten" Weg, weil er weiterhin sinnvoll sein syntaktischer Zucker,
3
Antworten
Möchte ich ausführen einer ActiveRecord-Abfrage gibt alle Datensätze zurück, außer diejenigen Datensätze, die bestimmte ids. Die ids möchte ich ausgeschlossen, sind gespeichert in einem array. Also: ids_to_exclude = [1,2,3] array_without_excluded_ids = Item. ??? Ich bin mir nicht
10
Antworten
Wie können Sie kombinieren Sie 2 verschiedene Bedingungen mit logischen ODER statt UND? HINWEIS: 2 Bedingungen erzeugt werden, wie Schienen-Bereiche und kann nicht einfach geändert werden in etwas wie where("x or y") direkt. Einfaches Beispiel: admins =
3
Antworten
Ich möchte etwas machen wie: SELECT * FROM USER WHERE NAME LIKE '%Smith%'; Mein Versuch in Arel: # params[:query] = 'Smith' User.where("name like '%?%'", params[:query]).to_sql Allerdings wird dies: SELECT * FROM USER WHERE NAME LIKE '%'Smith'%'; Arel
7
Antworten
Habe ich einen Standard-Rahmen auf Produkte, die aufgrund von Informationen security-Einschränkungen. class Product < ActiveRecord::Base has_many :photos default_scope where('visible = 1') end In meinem zugehörigen Foto-model, aber ich habe auch Produkte zu finden, die nicht sichtbar sein
6
Antworten
Ich habe eine Rails-3-Projekt. Mit Rails 3 kam Arel und die Wiederverwendung von einem Bereich zum anderen bauen. Ich Frage mich, ob es ist ein Weg, um Bereiche bei der Definition einer Beziehung (z.B. ein "has_many"). Habe
8
Antworten
Betrachten Sie einen einfachen Verband... class Person has_many :friends end class Friend belongs_to :person end Was ist der sauberste Weg, um alle Personen, die KEINE Freunde haben, die in ARel und/oder meta_where? Und was ist dann eine