Hi, guys
I have a puzzle about default_scope. Suppose I have two model: class User < ActiveRecord::Base has_many :blogs default_scope where(deleted_at: nil) end class Blog < ActiveRecord::Base belongs_to :user end I want to produce sqlselect blogs.* from blogs inner join users on users.id = blogs.user_id and users.deleted_at is null And the code Blog.joins(:user), which I think is good, produceselect blogs.* from blogs inner join users on users.id = blogs.user_id The default_scope is not appended to the join condition, why? To reach my goal, I must add conditions to belongs_to: class Blog < ActiveRecord::Base belongs_to :user, conditions: "deleted_at is null" end Why not append default_scope to join condition directly as the doc said: Use this macro in your model to set a default scope for all operations on the model. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Core" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/rubyonrails-core. For more options, visit https://groups.google.com/groups/opt_out.
