我有两个型号User
和Motor
,每个表有一个name
列。我有一个用户页面,显示用户拥有的所有电机。更新所有其他记录如果一条记录发生变化
我做的方式,它是如此的Motor
表的name
列等于给name
列在表User
Motor User
name1 name1
name3 name2
name1 name3
name1 name4
name4 name5
所以寻找到name1
的页面时,你会看到所有的记录名称为name1
的Motor
。
但是,当我想要更新User
表中的名称时,如何更改应该与user
关联的Motor
表中的所有记录?
所以,如果我改变name1
喜欢last1
,我该如何改变这一切name1
年代到last1
在Motor
表?
这是我的控制器show
方法
def show
@user = User.find(params[:id])
@motor = Motor.where(:name => @user.name)
end
然后我假设我需要改变我的update
方法
if @user.update_attributes(params[:user])
if params[:name]
# whats the correct way of changing all records that was previously the same name as user in the motor table?
end
end
感谢
发生此问题是因为您的表未规范化。而不是在Motor表中保存user_name保存user_id。您可以通过@ model.user.name访问用户名。这是正确的方法。 –