我有兩個型號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訪問用戶名。這是正確的方法。 –