PostgreSQL, Rails and :order => problem

后端 未结 3 1287
灰色年华
灰色年华 2021-01-02 16:32

I have the following line in my ActiveRecord model:

class Record < ActiveRecord::Base
    has_many :users, :through => :record_users, :uniq => true,         


        
相关标签:
3条回答
  • 2021-01-02 16:54

    I ran into something similar before and I believe it's an AR bug related to PGSQL (https://rails.lighthouseapp.com/projects/8994/tickets/1711-has-many-through-association-with-order-causes-a-sql-error-with-postgresql).

    I got around it by dropping the DISTINCT (:uniq) directive and resolved the uniq records another way. Kind of a bummer though.

    0 讨论(0)
  • 2021-01-02 16:55

    I suppose you could call it a bug in ActiveRecord. PosgreSQL is a bit more restrictive than MySQL. You can help out ActiveRecord by setting up the association like this instead:

    class Record < ActiveRecord::Base
      has_many :users,
       :through => :record_users,
       :select => 'DISTINCT users.*, record_users.index',
       :order => "record_users.index ASC"
    
    0 讨论(0)
  • Just posted this issue on rails's issue tracker on github (copied from lighthouse ticket so we could bring it back.. it was marked invalid):

    https://github.com/rails/rails/issues/520

    Promote it if you want this fixed nicely! :)

    0 讨论(0)
提交回复
热议问题