比如有一个表,是用户users,另外有一个表是角色表roles,然后建立了一个连接表roles_users,包含两个字段role_id和user_id。
想在roles_users中新增数据很容易:
[code="java"]
test=RolesUser.new
test.user_id=1
test.role_id=5
test.save
[/code]
但怎样删除某条数据呢?……需要“id”啊,连接表只有两个字段,没有自己的id的说……
只能加上id这个字段然后用:through那个东东么?
[b]问题补充:[/b]
find(1)是返回不了值的,因为没有id=1的数据,甚至都没有id这个东西,因为它是一张纯的连接表……
[b]问题补充:[/b]
delete_all真的可以,太好了……
user = User.find(:id)
role.users.delete(user)
role.save #就可以把在roles_users表中user.id 和 role.id 相关联的那行记录给删除了
这位老大提供的方法看起来也有点像,但语法不对……第二行说没有一个叫“role”的方法,我换成Role也不行,按RDoc里写了个“#”也不行……