2016-10-03 103 views
0

是否有可能在Ruby(2)和Rails(3.2)中更新單個命令中的字段選擇。例如,我需要更新鉤子中的所有名稱匹配的字段集合。我結束了這樣的事情更新字段ruby

def set_address 
    assign_attributes(address1: subscription.subscriber.address1, 
         address2: subscription.subscriber.address2, 
         address3: subscription.subscriber.address3, 
         city: subscription.subscriber.city, 
         county: subscription.subscriber.county, 
         country_id: subscription.subscriber.country_id, 
         postcode: subscription.subscriber.postcode) 
    end 
因爲所有的字段名在兩個車型匹配有更簡單的方式做到這一點,還是有辦法來分組域在一起,這樣我可以執行

def set_address 
    address = subscription.subscriber.address 
end 

任何意見讚賞

+0

你可以,但它WOU最好不要。你怎麼知道這兩列是否相關,即使它們有相同的名字?當然,你不想重新分配'id','created_at'等等。無論如何,你必須將它們列入白名單/黑名單,所以最好讓它明顯。這不是重複。 – ndn

+0

至於後者的要求 - 只需製作一張單獨的表格 - 「地址」。 – ndn

+0

是的,它看起來像一個更好的解決方案是通過創建一個新的表格/模型來合理化你的數據庫:'地址'。然後你可以這樣做:'address = subscription.subscriber.address'。 –

回答

0

也許是這樣的:

[:address1, :address2, :address3, :city, :country, :country_id, :postcode].each do |field| 
    send("#{field}=", subscription.subscriber.send(field)) 
end