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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top