Il record attivo è un modello che combina la logica del dominio con l'astrazione della memoria in un singolo oggetto. Utilizzare questo tag per domande sul modello, [rails-activerecord] per domande sul framework ORM di Rails.
Qual è il modo migliore per trovare record con valori duplicati su più colonne utilizzando Postgres e Activerecord? Ho trovato questa soluzione qui : User.find(:all, :group => [:first, :email], :having => "count(*) > 1" ) Ma non sembra funzionare con postgres. Ricevo questo errore: PG :: GroupingError: ERRORE: la colonna …
Sto scrivendo un modello che gestisce l'input dell'utente da un'area di testo. Seguendo il consiglio di http://blog.caboo.se/articles/2008/8/25/sanitize-your-users-html-input , sto ripulendo l'input nel modello prima di salvare nel database, utilizzando before_validate richiama. Le parti rilevanti del mio modello hanno questo aspetto: include ActionView::Helpers::SanitizeHelper class Post < ActiveRecord::Base { before_validation :clean_input ... …
Quando lo fai Something.find(array_of_ids) in Rails, l'ordine dell'array risultante non dipende dall'ordine di array_of_ids. C'è un modo per trovare e preservare l'ordine? ATM Ordino manualmente i record in base all'ordine degli ID, ma è un po 'noioso. UPD: se è possibile specificare l'ordine utilizzando il :orderparametro e una sorta di …
Sto cercando di fare qualcosa che pensavo sarebbe stato semplice ma sembra che non lo sia. Ho un modello di progetto che ha molti posti vacanti. class Project < ActiveRecord::Base has_many :vacancies, :dependent => :destroy end Voglio ottenere tutti i progetti che hanno almeno 1 posto vacante. Ho provato qualcosa …
Voglio eseguire un aggiornamento raw sql come di seguito: update table set f1=? where f2=? and f3=? Questo SQL verrà eseguito da ActiveRecord::Base.connection.execute, ma non so come passare i valori dei parametri dinamici nel metodo. Qualcuno potrebbe darmi un aiuto su questo?
c'è un modo per ottenere il valore originale di un attributo ActiveRecord (= il valore che è stato caricato dal database)? Voglio qualcosa di simile in un osservatore before_save object do_something_with object.original_name end Il compito è rimuovere l'oggetto da una tabella hash (infatti, spostarlo su un'altra chiave nella tabella) al …
Usando questo esempio modificato dalle guide Rails , come si modella un'associazione relazionale "has_many: through" usando mongoid? La sfida è che mongoid non supporta has_many: through come fa ActiveRecord. # doctor checking out patient class Physician < ActiveRecord::Base has_many :appointments has_many :patients, :through => :appointments has_many :meeting_notes, :through => :appointments …
Quindi eseguo una query al db e ho un array completo di oggetti: @attachments = Job.find(1).attachments Ora che ho un array di oggetti non voglio eseguire un'altra query db, ma vorrei filtrare l'array in base Attachmentall'oggetto in file_typemodo da poter avere un elenco di attachmentsdove si trova il tipo di …
Il #new_record? funzione determina se un record è stato salvato. Ma è sempre falso nel after_savegancio. C'è un modo per determinare se il record è un record appena creato o uno vecchio dall'aggiornamento? Spero di non utilizzare un altro callback come before_createimpostare un flag nel modello o richiedere un'altra query …
Rails 4 ha introdotto un avviso di deprecazione quando si usa: uniq => true con has_many: through. Per esempio: has_many :donors, :through => :donations, :uniq => true Produce il seguente avviso: DEPRECATION WARNING: The following options in your Goal.has_many :donors declaration are deprecated: :uniq. Please use a scope block instead. …
Nel mio attuale programma rails quando uso qualcosa di simile user = User.find(10) Quando non ci sono utenti con ID = 10, avrò un'eccezione come: ActiveRecord::RecordNotFound: Couldn't find User with ID=10 Posso ottenere zero invece di sollevare eccezioni, quindi quando faccio qualcosa come: unless user = Challenge.find(10) puts "some error …
Ho una tabella e sto cercando di aggiungere un indice univoco su due colonne. Anche queste colonne sono indicizzate. Quindi la mia domanda è se posso rimuovere gli indici che erano solo per una colonna o se devo usare tutti e tre gli indici: add_index "subscriptions", ["user_id"] add_index "subscriptions", ["content_id"] …
class Agents << ActiveRecord::Base belongs_to :customer belongs_to :house end class Customer << ActiveRecord::Base has_many :agents has_many :houses, through: :agents end class House << ActiveRecord::Base has_many :agents has_many :customers, through: :agents end Come aggiungo al Agentsmodello perCustomer ? È questo il modo migliore? Customer.find(1).agents.create(customer_id: 1, house_id: 1) Quanto sopra funziona bene …
Rails ha introdotto un nuovo modo per convalidare gli attributi all'interno del modello. Quando uso validates :title, :presence => true funziona ma quando provo ad aggiungere un messaggio personalizzato validates :title, :presence => true,:message => "Story title is required" viene generato un errore Unknown validator: 'message'
Secondo Rails doc: http://guides.rubyonrails.org/migrations.html "Active Record tiene traccia delle migrazioni già eseguite, quindi tutto ciò che devi fare è aggiornare l'origine ed eseguire rake db: migrate." In che modo ActiveRecord lo fa effettivamente? Dove archivia i dati Active Record? Ho il sospetto che questo possa essere memorizzato nel database stesso? …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.