比方说,我想通过传递键以外的主键,如社会安全号码来更新关联:更新联想比其他主键
Teacher.find(params[:id]).update({'student_ids'=>['123-45-6789','987-65-4321']})
我怎样才能让我的老师模型理解它将接收SSN,而不是数据库ID? SSN唯一标识一名学生。
编辑:我喜欢Pavling的解决方案,因为它保留了模型中的逻辑。然而,这失败:
Teacher.new({name:'Miss Molly',student_ssns:['123-45-6789','987-65-4321']})
随着ActiveRecord::UnknownAttributeError: unknown attribute: student_ssns
我喜欢这个解决方案,但此操作失败: Teacher.new({名称:'莫利小姐,student_ssns:[ '123-45-6789', '987-65-4321']}) 随着ActiveRecord :: UnknownAttributeError:未知属性:student_ssns – Dave 2014-10-10 16:13:45
我调整了方法名称...对不起,它应该是一个'setter' – Pavling 2014-10-10 20:30:13