modello rotaie attributi senza corrispondente colonna db
-
29-08-2019 - |
Domanda
Ho alcuni modelli binari che non necessitano di alcuna persistenza, però mi piacerebbe rotaie pensare che il modello ha in realtà attributi x, y, z in modo da quando si chiama metodi come to_json nel controller ricevo li inclusi gratuitamente.
Ad esempio,
class ModelWithoutTableColumns << ActiveRecord::Base
def x
return "Custom stuff here"
end
Non c'è colonna x nel database per la tabella "ModelWithoutTable" (scusate per il nome un po 'di confusione!)
Qualcuno ha un'idea di come affrontare questo?
Soluzione
Sembra che si desidera ActiveModel. Scopri http: // yehudakatz. com / 2010/01/10 / activemodel-fare-qualsiasi-ruby-oggetto-feel-like-ActiveRecord / per un grande walkthrough da Yehuda Katz. In particolare la sezione chiamata "serializzazione" per le vostre esigenze to_json
.
Altri suggerimenti
Basta non ereditare da ActiveRecord :: Base
Edit: Hai provato opzioni di passaggio per to_json, come: i metodi forse? Vedere qui
Non funziona -. ActiveRecord :: Base definisce to_json, ma richiede una tabella
Si dovrebbe verificare il plugin ActiveRecord :: BaseWithoutTable. Ecco come usarlo , ed ecco un noreferrer versione aggiornata per Rails 2 .
Non ho provato uno di loro, così non ci sono garanzie.
Si potrebbe anche voler controllare acts_without_database, gli attuali dettagli su di esso sono qui , ma il sito è giù in questo momento. Ecco la pubblicazione sul RubyFlow , è da oggi.