请教一个ActiveRecord的问题

请教一个ActiveRecord的问题

我现在有一个无主键的join table A,其中有a_id,b_id,value(string)三个列
我可以用find_by_a_id_and_b_id查找到mdel A,然后我修改A.value = xxx;
A.save的时候就出错了,自动生成的sql是where id = NULL
ActiveRecord要求表必须要有主键,否则不能更新。

默认主键名为id.
那带value的join table如何更新呢?
更新表可以用User.update_attributes,不过还是需要主键,不然ActiveRecord不会聪明到把所有的字段联合起来做为条件的。
那可不可以裸地执行sql?
off course, you can.

借助ActiveRecord的连接适配器,你可以直接执行SQL语句,不过这比较罕见。

例如有个类:Order

你可以执行 Order.connection.select_all("select * from orders"),这将返回一个Hash的数组。