我正在使用Ruby on Rails 3,並且想更改多態關聯使用的默認類型列名稱。更改默認的多態類型列名稱
舉例來說,如果我有這個類:
class Comment < ActiveRecord::Base
...
end
,我實現了一個多態關聯,我想用類型字段名comm_id
和comm_type
代替commentable_id
和commentable_type
。 這可能嗎?如果是這樣,我需要爲評論課改變什麼?
我正在使用Ruby on Rails 3,並且想更改多態關聯使用的默認類型列名稱。更改默認的多態類型列名稱
舉例來說,如果我有這個類:
class Comment < ActiveRecord::Base
...
end
,我實現了一個多態關聯,我想用類型字段名comm_id
和comm_type
代替commentable_id
和commentable_type
。 這可能嗎?如果是這樣,我需要爲評論課改變什麼?
Rails API無法覆蓋用於多態關聯的默認列名稱。
看看this answer尋找可能的解決方案。
在你的情況下,爲什麼不只是改變協會:
# Comment
belongs_to :comm, :polymorphic => true
# Everything else
has_many :comments, :as => :comm
我必須注意,由於Rails的4.2.1版本中存在的方式,你可以在這裏發佈的鏈接找到了它。但這不是第一個答案(標記爲正確)。所以最好點擊這個[鏈接](http://stackoverflow.com/a/41179078/1514072)。祝你有美好的一天;) – 2017-03-24 13:01:00