Articles of ruby on rails

wie man sequenzielle Nummern in Postgres schnell massenhaft aktualisiert

Der Chef möchte ab 1000 für jeden Händler fortlaufende Bestellnummern erhalten. Im Moment durchlaufe ich jeden Händler (mit Ruby) und aktualisiere die Bestellungen wie folgt: #running all of this in a migration add_column :orders, :order_seq, :integer Merchant.find_each do |merchant| order_seq = 999 merchant.orders.order(:ordered_at).find_each do |order| order.update_column(:order_seq, order_seq+=1) end end Ich plante, dies während einer Migration […]

Rails – Eindeutig nach einer Verbindung

Ich verwende Rails 4.2 mit PostgreSQL. Ich habe ein Product und ein Purchase mit Product has many Purchases . Ich möchte die verschiedenen kürzlich erworbenen Produkte finden. Anfangs habe ich versucht: Product.joins(:purchases) .select("DISTINCT products.*, purchases.updated_at") #postgresql requires order column in select .order("purchases.updated_at DESC") Dies führt jedoch zu Duplikaten, da versucht wird, alle Tupel zu finden, […]

datesbereiche: inklusive vs strenge Grenzen

Wenn Sie einem Benutzer erlauben, einen datesbereich auszuwählen, sagen wir: Zeige mir Einträge von [ 1. August ] bis [ 1. September ] Als Benutzer würde ich generell erwarten, dass dies die Ergebnisse für den 1. September beinhaltet. Besonders wenn man bedenkt, dass wenn ich das gleiche date für beide Enden wähle, meine ich offensichtlich […]

Rails Sql Abfrage für Monat und Jahr

Ich versuche, Verkaufsvorgänge für den aktuellen Monat und das aktuelle Jahr in meiner Indexansicht anzuzeigen. Dies ist, was ich in meinen Verkaufscontroller gesetzt habe: def index @sales = show_sales_for_current_month(@sales) die diese Methode im SalesHelper verwendet def show_sales_for_current_month(sales) sales = Sale.find(:all, :conditions => ["MONTH(date) = ? AND YEAR(date) =?", Date.today.month, Date.today.year]) end wobei date ein datesdatentyp […]

Was ist der Unterschied zwischen "x IS NULL" und "NICHT (x IS NOT NULL)"?

Gibt es einen signifikanten Unterschied zwischen Postgresqls Ausführung, performance oder Logik? SELECT "users".* FROM "users" WHERE ("users"."deleted_at" IS NULL) und SELECT "users".* FROM "users" WHERE (NOT ("users"."deleted_at" IS NOT NULL)) Offensichtlich, wenn von Hand geschrieben, ist der erste Ausdruck der, den ich schreiben würde (wer würde absichtlich ein doppeltes Negativ schreiben ?!). Aber in diesem […]

Rails 3: Gibt es eine `AR # or_where`?

Gibt es eine AR#or_where in Rails 3 wie in User.where(cond1).or_where(cond2) ?

Wie speichert man das Array im Attribut des ActiveRecord-models?

Ich habe einen modelwegpunkt mit zwei Attributen Koordinaten Geocodetext Und modelroute, die nicht mehr ist als sortierte Anordnung von pathpunkten mit einigen zusätzlichen Textinformationen. Einige Routen können dieselben pathpunkte haben, daher möchte ich pathpunkte von Routen trennen. Was ist der beste path pathpunkte in der Route zu speichern? Ich sehe mehrere Möglichkeiten: serialize pathpunkte IDs […]

Erstellen Sie mehrere Rails ActiveRecord-datasätze in einem Aufruf / einer Abfrage

In einem der AR-classn meiner Rails-Apps endete ich mit einem Array von vielen neu initialisierten ActiveRecord-objecten. Ich möchte in der Lage sein, sie in der DB auf eine effiziente Weise zu speichern, idealerweise in einem methodsaufruf. Im Moment habe ich sie in eine Transaktion verpackt. Etwas wie: Object.transaction do @objects.map(&:save) end Gibt es eine effizientere […]

Wie erstelle ich eine benutzerdefinierte Sequenz in PostgreSQL basierend auf dem date der Erstellung der Zeile?

Ich bin dabei, eine Rails-Anwendung zu erstellen, die eine (sehr alte) Legacy-Auftragsverwaltungsanwendung für meinen Arbeitgeber replace wird. Eine der Spezifikationen für das neue System ist, dass das Bestellnummerierungssystem beibehalten wird. Im Moment sind unsere Bestellnummern wie folgt formatiert: Die ersten vier Ziffern sind das aktuelle Jahr Die nächsten zwei Ziffern sind der aktuelle Monat Die […]

Rails – Reihenfolge der Spaltenwerte (Prioritätsspalte)

Ich habe eine Array- priority = ['HIGH', 'MEDIUM', 'LOW'] die verwendet wird, um eine "Dringlichkeits" -databasespalte zu setzen. Ich möchte die data nach Priorität sortiert abrufen, obwohl die Anwendung Task.order(:urgency) die Ergebnisse alphabetisch (dh HIGH, LOW, MEDIUM) zurückgibt. Ich verwende PostgreSQL für die database. Ich würde (offensichtlich) gerne von hoher zu niedriger Priorität zurückkehren. Gibt […]