Articles of rails activerecord

Avviso di deprecazione durante l’utilizzo di has_many: through: uniq in Rails 4

Rails 4 ha introdotto un avviso di deprecazione quando si utilizza: uniq => true con has_many: through. Per esempio: has_many :donors, :through => :donations, :uniq => true Rende il seguente avviso: DEPRECATION WARNING: The following options in your Goal.has_many :donors declaration are deprecated: :uniq. Please use a scope block instead. For example, the following: has_many […]

trova vs find_by vs dove

Sono nuovo alle rotaie. Quello che vedo è che ci sono molti modi per trovare un record: find_by_() find(:first, :conditions => { => } where( => ).first E sembra che tutti finiscano per generare esattamente lo stesso SQL. Inoltre, credo che lo stesso sia vero per la ricerca di più record: find_all_by_() find(:all, :conditions => […]

query, imansible selezionare il conteggio delle colonne

Tag.joins(:quote_tags).group(‘quote_tags.tag_id’).order(‘count desc’).select(‘count(tags.id) AS count, tags.id, tags.name’) Build query: SELECT count(tags.id) AS count, tags.id, tags.name FROM `tags` INNER JOIN `quote_tags` ON `quote_tags`.`tag_id` = `tags`.`id` GROUP BY quote_tags.tag_id ORDER BY count desc Risultato: [#, … , #] Non restituisce la colonna dei conteggi per me. Come posso averlo?

Modo pulito per trovare oggetti ActiveRecord per id nell’ordine specificato

Voglio ottenere una matrice di oggetti ActiveRecord data una serie di ID. L’ho assunto Object.find([5,2,3]) Restituirebbe un array con l’object 5, l’object 2, quindi l’object 3 in quell’ordine, ma invece ottengo un array ordinato come object 2, object 3 e quindi object 5. L’ API metodo metodo ActiveRecord Base menziona che non dovresti aspettarti nell’ordine […]

LEFT OUTER JOIN in Rails 4

Ho 3 modelli: class Student < ActiveRecord::Base has_many :student_enrollments, dependent: :destroy has_many :courses, through: :student_enrollments end class Course < ActiveRecord::Base has_many :student_enrollments, dependent: :destroy has_many :students, through: :student_enrollments end class StudentEnrollment < ActiveRecord::Base belongs_to :student belongs_to :course end Desidero interrogare per un elenco di corsi nella tabella Corsi, che non esistono nella tabella StudentEnrollments che […]

Rails – Nested include su Active Records?

Ho una lista di eventi che ottengo. Sto cercando di includere tutti gli utenti associati a questo evento e ogni profilo associato a ciascun utente. Gli utenti vengono inclusi ma non i loro profili. Come lo farei? Event.includes(:users [{profile:}]) I documenti non sembrano essere chiari: http://guides.rubyonrails.org/active_record_querying.html

Come saltare i callback di ActiveRecord?

Possibile duplicato: Come posso evitare di eseguire i callback di ActiveRecord? Ho una modella come questa class Vote < ActiveRecord::Base after_save :add_points_to_user ….. end È ansible forzare in qualche modo il modello a saltare la chiamata di add_points_to_user quando viene salvato? Forse qualcosa come ActiveRecord#delete vs ActiveRecord#destroy ?

Heroku Postgres Errore: PGError: ERRORE: la relazione “organizzazioni” non esiste (ActiveRecord :: StatementInvalid)

Sto riscontrando un problema nel distribuire la mia app Rails a Heroku, dove viene generato questo errore quando provo ad accedere all’app: PGError: ERRORE: la relazione “organizzazioni” non esiste (ActiveRecord :: StatementInvalid) SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull FROM pg_attribute a LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum WHERE a.attrelid […]

ActiveRecord Trova per anno, giorno o mese in un campo Data

Ho un modello ActiveRecord che ha un attributo data. È ansible utilizzare quell’attributo data per trovare per anno, giorno e mese: Model.find_by_year(2012) Model.find_by_month(12) Model.find_by_day(1) o è semplicemente ansible find_by_date (2012-12-1). Speravo di poter evitare di creare attributi di Anno, Mese e Giorno.

Rotaie dove condizione usando NOT NULL

Usando lo stile 3 delle rotaie come potrei scrivere l’opposto di: Foo.includes(:bar).where(:bars=>{:id=>nil}) Voglio trovare dove id NON è null. Provai: Foo.includes(:bar).where(:bars=>{:id=>!nil}).to_sql Ma ciò restituisce: => “SELECT \”foos\”.* FROM \”foos\” WHERE (\”bars\”.\”id\” = 1)” Questo non è assolutamente ciò di cui ho bisogno, e sembra quasi un bug in ARel.