vista una relaciones rails parciales nueva modelos formulario entre crear controladores ruby-on-rails activerecord

ruby-on-rails - una - relaciones entre modelos rails



Cómo obtener la lista de atributos de un modelo activerecord que puede asignarse en masa (5)

Me gustaría tener una lista de todos los nombres de atributos que se pueden asignar en masa. Lo necesito para un generador de formularios personalizado que no agregue campos de entrada de manera predeterminada que no se puedan asignar en masa. Por ejemplo, si tengo un modelo como:

class Post < ActiveRecord::Base attr_protected :account belongs_to :author validates_presence_of :title, :author end

Me gustaría tener como resultado una lista que contenga: autor,: título.

¿Alguna idea de si existe tal método? ¿O algunas pautas sobre cómo puedo hacer una que haga esto?


Es posible que algunas de las respuestas mencionadas anteriormente no se apliquen a Rails 4.

Puede usar MyModel.attribute_names para obtener la matriz de atributos de la tabla, aunque esto podría no otorgarle atributos de asignación masiva, ya que este aspecto de Rails cambia con la versión 4 http://weblog.rubyonrails.org/2012/3/21/strong-parameters/


Para Modelos, puede usar MyModel.attribute_names o MyModel.column_names .

Por ejemplo, puede usar MyModel.new.attribute_names .


Post.accessible_attributes lo cubriría si definiera explícitamente attr_accessible

Excepto que, hacer algo como esto es torpe pero funciona:

Post.new.attributes.keys - Post.protected_attributes.to_a



Post.accessible_attributes.to_a.map(&:to_sym)