default_scope打破了依赖的破坏行为

时间:2014-07-30 10:12:54

标签: ruby-on-rails

我的微缩模型具有以下关联:

class Miniature < ActiveRecord::Base
  has_many :minilines, dependent: :destroy
  has_many :lines, :through => :mini lines

这样可以正常工作,但我希望Minilines按名称按字母顺序排序,所以我添加了这个:

class Miniline < ActiveRecord::Base
    default_scope { order('name ASC') }
    belongs_to :miniature
    belongs_to :line

我认为这样可以正常工作但是当你来删除Miniature时会出现错误:

  

ActiveRecord :: StatementInvalid(SQLite3 :: SQLException:没有这样的列:   name:SELECT“minilines”。* FROM“minilines”WHERE   “minilines”。“miniature_id”=?按名称ASC订购):
  app / controllers / miniatures_controller.rb:205:在`destroy'

删除default_scope行可以删除Miniature并具有正确的行为。

我不清楚为什么default_scope会破坏这种行为或如何纠正它。

我的问题似乎与this重复,但是那里的勾选解决方案并没有为我解决。

1 个答案:

答案 0 :(得分:0)

你可能应该:

default_scope { joins(:line).order('lines.name ASC') }