2011-05-06 44 views
3

我正在使用Ruby on Rails 3,并且想更改多态关联使用的默认类型列名称。更改默认的多态类型列名称

举例来说,如果我有这个类:

class Comment < ActiveRecord::Base 
    ... 
end 

,我实现了一个多态关联,我想用类型字段名comm_idcomm_type代替commentable_idcommentable_type这可能吗?如果是这样,我需要为评论课改变什么?

回答

2

Rails API无法覆盖用于多态关联的默认列名称。

看看this answer寻找可能的解决方案。

+0

我必须注意,由于Rails的4.2.1版本中存在的方式,你可以在这里发布的链接找到了它。但这不是第一个答案(标记为正确)。所以最好点击这个[链接](http://stackoverflow.com/a/41179078/1514072)。祝你有美好的一天;) – 2017-03-24 13:01:00

0

在你的情况下,为什么不只是改变协会:

# Comment 
belongs_to :comm, :polymorphic => true 

# Everything else 
has_many :comments, :as => :comm