2010-07-30 11 views

Respuesta

3

Ver this ticket que propone un parche a los rieles. Puede añadir el siguiente código en un archivo nuevo /config/initializers/hidden_columns.rb:

require "activerecord" 

class << ActiveRecord::Base 
    def hidden_columns(*hidden) 
    write_inheritable_array("hidden_column", hidden.collect(&:to_s)) 
    end 

    def columns_hidden 
    read_inheritable_attribute("hidden_column") || [] 
    end 

    def columns 
    unless defined?(@columns) && @columns 
     @columns = connection.columns(table_name, "#{name} Columns").delete_if {|c| columns_hidden.member?(c.name) } 
     @columns.each {|column| column.primary = column.name == primary_key} 
    end 
    @columns 
    end 
end 

entonces usted puede escribir:

hidden_columns :rowguid 

en los modelos en cuestión.

+0

Gracias, pero esto no funcionó. De alguna manera, RoR no encuentra el método hidden_columns. Estoy obteniendo un método indefinido. – Hibri

+0

Debería funcionar ahora. – giraff

0

respuesta es igual al anterior

necesita método que se define como un método de clase http://gist.github.com/504745

+0

Genial, lo arreglaste tú mismo. "Por encima de" cambios, así que modifiqué mi respuesta. – giraff

1

Otra opción, sería hacer una vista que oculta la columna (s). Lo hice cuando atornillaba una aplicación de rieles en un DB heredado en SQL Server. De esta forma no tiene que meterse con/luchar contra los rieles, y puede ocultar las columnas que desee fácilmente ...

+0

fácilmente la mejor y más simple manera de ir en mi opinión. Ojalá hubiera visto esto hace años cuando asumía un proyecto heredado – FireDragon

Cuestiones relacionadas