【发布时间】:2016-07-22 00:40:06
【问题描述】:
我在 GitHub 上贡献了一个 ruby on rails 应用程序,我遇到了以下情况:
我有以下要转换为多态的模型:
class Comment < ActiveRecord::Base
belongs_to :team
belongs_to :project
end
class Team < ActiveRecord::Base
has_many :comments
end
class Project < ActiveRecord::Base
has_many :comments, -> { order('created_at DESC') }, dependent: :destroy
end
我进行了以下更改以使其具有多态性:
执行数据库更改以删除 team_id、project_id 并将 commentable_id 和 commentable_type 添加到 cmets 表。
导轨中描述的模型修改:
class Comment < ActiveRecord::Base
belongs_to :commentable, polymorphic: true
end
class Team < ActiveRecord::Base
has_many :comments, as: :commentable
end
class Project < ActiveRecord::Base
has_many :comments, as: :commentable, -> { order('created_at DESC') }, dependent: :destroy
end
虽然我将它与默认范围一起使用,但它不允许我与默认范围一起使用并在项目模型的以下行中给出错误:
has_many :comments, as: :commentable, -> { order('created_at DESC') }, dependent: :destroy
我的浏览器出现以下错误:
任何帮助将不胜感激。提前致谢!
【问题讨论】:
-
嘿,我也遇到过类似的事情,我在 Rails github 上打开了一个问题......让我们看看我们是否可以得到任何意见。 github.com/rails/rails/issues/25288
标签: ruby-on-rails ruby-on-rails-4 scope associations polymorphic-associations