各位新年好,我這邊有個小問題想請教大家一下 (希望不介意我此文也貼在 ruby-taiwan 那邊,因為我是在台灣站先發的,且不熟悉大陸用詞,若有看不懂的部分請回應,我會再做編修解釋,感謝。)
就是我現在遇到了兩個問題:
1.
我現在有個 Model 叫做 Log,這個 Log 用來記錄 User 的操作,譬如說登入、投票等
而 Log 有欄位:target_type
、target_id
兩個,這個target_type
可能會是"User"
或"Vote"
,而 target_id
就有可能是存放user.id
或者vote.id
了
可是我這樣在取得 Log 的時候,要怎樣透過log.target
去取得目標物件呢?
可以在 Log.rb 中belongs_to
設定什麼來做這個 Mapping 嗎?
2.
我現在另外一個需求是,我得實作一個投票的系統,可以針對不同的產品來分配不同的表供使用者做投票之用,譬如說我有產品叫做:Water 跟 Cola 兩個,這兩個產品會有不同的表:VoteForWater跟VoteForColoa,那我有沒有辦法透過一個 Model 搭配一個參數 (譬如說是vote.for
) 來讓 Rails 自己儲存到對應的表呢?
vote.for = "water"; vote.save #=> 儲存到VoteForWater
vote2.for = "cola"; vote2.save #=> 儲存到VoteForCola
感謝