我的微缩模型具有以下关联:
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重复,但是那里的勾选解决方案并没有为我解决。
答案 0 :(得分:0)
你可能应该:
default_scope { joins(:line).order('lines.name ASC') }