我正在使用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