Come posso specificare esplicitamente la mappatura del nome tabella di un modello in Rails?


230

Ho una classe Model chiamata Paesi e voglio che sia mappata su una tabella DB chiamata 'cc'.

Come viene fatto in Rails?

Risposte:


427

Rotaie> = 3.2 (compresi i binari 4+ e 5+):

class Countries < ActiveRecord::Base
  self.table_name = "cc"
end

Rotaie <= 3.1:

class Countries < ActiveRecord::Base
  self.set_table_name "cc"
  ...
end

È la migliore pratica da specificare table_nameper ogni modello?
Sung Cho

10
@MikeC - No. È il modo più semplice per essere il più breve possibile e scrivere il codice solo quando sovrascrive le convenzioni.
toobulkeh,

@SungWonCho Non è buona norma specificare il nome della tabella su ciascun modello, basta usarlo solo quando è necessario un nome diverso per la tabella
Thorin

137
class Countries < ActiveRecord::Base
    self.table_name = "cc"
end

In Rails 3.x questo è il modo di specificare il nome della tabella.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.