-1
我需要模仿標準的Rails has_many
關係,但將外鍵存儲在父項中。如何使用has_many關係在父項中存儲外鍵
class Product < ActiveRecord::Base
has_many :questions
end
class Question < ActiveRecord::Base
belongs_to :product
end
這是因爲我使用PaperTrail的版本,當我取回@product的早期版本,我想看看有什麼問題,它與相關的。
到目前爲止,我想創造的:
- ,更新問題 的序列化陣列的關聯回調IDS每次問題是添加或刪除從 @ product.questions時間
- :讀取這個數組,把它變成一個 收集的問題
喜歡的東西的方法
class Product < ActiveRecord::Base
serialize :questions_list, Array
has_many :questions, :after_add => :update_questions_list, :after_remove => :update_questions_list
def update_questions_list
update_column :questions_list, questions.map{|q| q.id}
end
def versioned_questions
questions_list.map{|id| Question.find(id)}
end
end
然後,我會專門在我的其他方法中引用versioned_questions。
但是,這似乎有點駭人聽聞,可能是瓶頸的來源。如果可能的話,我希望自己做一些Railsish,我會自動獲得ActiveRecord協會的所有好處。我可以嗎?
順便說一句,有a StackOverflow question,從它的標題看來它回答我的問題,但它實際上涉及到has_one
協會,而不是has_many
。
我想你已經downvoted,因爲這違背了Rails的慣例 - 或許downvoter會詳細說一下它對於? –