Nested Model Mass Assignment Error


I have a many-to-many relationship via a join table. When I attempt to
set the values (i.e. the relationship) in the join table via the Rails
console I get the following error, does anyone know what could be wrong?

Note: I have set attr_accessible – see Grade model below.

ActiveModel::MassAssignmentSecurity::Error: Can’t mass-assign protected
attributes: id, grade_salary_attributes_attributes

In the Rails console I execute:

grade = Grade.find(:first)

params = {:grade => { :id => 1, :grade_salary_attributes_attributes => {
:id => 1, :grade_id => 1, :salary_attribute_id => 2 }}}


Below are the 3 models:

Grade Model

class Grade < ActiveRecord::Base
has_many :grade_salary_attributes
has_many :salary_attributes, :through => :grade_salary_attributes

accepts_nested_attributes_for :grade_salary_attributes, :reject_if =>
lambda {|attributed| attributed[‘grade_id’].nil? ||

attr_accessible :description, :title,

Salary Attribute Model

class SalaryAttribute < ActiveRecord::Base
has_many :grade_salary_attributes
has_many :grades, :through => :grade_salary_attributes

attr_accessible :description, :title

Grade Salary Attribute (Join) Model

class GradeSalaryAttribute < ActiveRecord::Base
belongs_to :grade
belongs_to :salary_attribute

attr_accessible :grade_id, :salary_attribute_id

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs