我有一个简单的User模型,它使用连接表(has_and_belongs_to_many)与许多Town对象相关联。现在,我想通过分配一个逗号分隔的城镇I列表(直接来自作为HTTP POST参数发送的表单)来更新属于某个特定用户的城镇。
使用以下控制器代码保存user对象:
@current_object.update_attributes(params[:user])params[:user]包括例如被设置为1,4,6的town_ids。
不幸的是,这根本不会更新用户-城镇关联。但是,如果我手动完成,它会工作得很好:
User.find(:first).town_ids = "1,4,6" # this saves automatically会不会是因为无法批量分配这些collection_singular_ids字段?
我的用户模型包含以下内容:
has_and_belongs_to_many :towns
# necessary for mass-assignment, otherwise it results in an exception:
attr_accessible :town_ids任何帮助都是非常感谢的。
发布于 2012-07-04 20:33:48
您必须将town_ids作为数组传递
User.find(:first).update_attributes(:town_ids=>[1,4,6])如果您将ids作为字符串传递,Rails将尝试将字符串转换为整数:
"1,4,6".to_i # => 1https://stackoverflow.com/questions/11328726
复制相似问题