0
我有一個owner
模型,它將一個序列化的item
對象數組保存到數據庫中的文本字段。我可以很容易地向這個數組添加項目,但是當我想刪除一個時,我不能這樣做,因爲每個對象都沒有唯一的標識符。爲序列化對象添加唯一標識
是否有一個現成的方法來解決這個問題,還是我需要實現某種獨特的ID生成器?
class Owner < ActiveRecord::Base
serialize :items
end
class Item
attr_accessor :name
end
owner = Owner.new
owner.items = []
owner.items << Item.new(name: 'Test')
owner.save
在show
視圖爲owner
項目都列出來,我想包括remove item
聯繫,但都沒有辦法確定的項目。
for each item...
<%= link_to 'Remove Item', remove_item_path(item) %> # item won't match after owner is reloaded in the controller
# controller
owner = Owner.find(params[:id])
owner.items.delete(params[:item]) # This won't work, items have been reloaded when owner was found
任何建議將受到歡迎。
難道你不能使用關聯嗎?序列化對於小變量(數組,散列)不適用於記錄 – Benj