Problema de atributos protegidos de asignación masiva

Conozco todas las razones de seguridad detrás de por qué la asignación masiva es mala, lo que no puedo entender es por qué mi aplicación está tratando de hacer una asignación masiva.

solo estoy tratando de crear un nuevo registro de mi modelo de sección y recibo el error "No se pueden asignar atributos protegidos en masa". A continuación se muestran los posibles modelos involucrados. ¿Puede alguien explicarme cómo es esto una asignación masiva? Soy nuevo en los rieles, por lo que me podría estar perdiendo algo muy simple.

class Section < ActiveRecord::Base
  belongs_to :project
  belongs_to :type, :foreign_key => 'type_id', :class_name => 'SectionType'
  attr_accessor :order
end

class SectionType < ActiveRecord::Base
  attr_accessible :name, :template
end

class Project < ActiveRecord::Base
  has_many :sections
  attr_accessible :description, :name, :short, :status, :subtitle, :version

  def to_param
    return name.gsub(/\s+/, '%20')
  end
end

Cualquier ayuda sería muy apreciada, soy nuevo en Rails y sé que este es probablemente un problema simple, pero he estado tratando de encontrar una respuesta y no puedo.

preguntado el 04 de julio de 12 a las 06:07

1 Respuestas

Si está intentando crear una nueva Section object y eso está fallando, eso sería porque no tiene ningún atributo listado como accesible dentro de ese modelo. Deberá hacer eso, usando una llamada similar a attr_accessible como el que tienes en tu Project modelo ya.

Respondido 04 Jul 12, 06:07

Entonces, ¿simplemente cambie arre_accessor a attr_accessible? o también agregar :project y :type a él? - KayoticSully

Así que la solución para mí fue que necesitaba usar attr_accessible :order, :project_id, :type_id No solo attr_accessible :order, :project, :type - KayoticSully

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.