SORU
13 AĞUSTOS 2013, Salı


Ray 4, Modeli.kapsamlı kaldırılmış ama modeldir.tüm't değiştirebilirsiniz

Raylar 4 başlangıç, Model.scoped artık önerilmiyor.

DEPRECATION WARNING: Model.scoped is deprecated. Please use Model.all instead.

Ama,all.all sorgu çalışırken Model.scoped Model.all, farklılık, scoped.scoped bir kapsam verir.

3 Raylar:

> Model.scoped.scoped.is_a?(ActiveRecord::Relation)
=> true

4 Raylar:

> Model.all.all.is_a?(ActiveRecord::Relation)
DEPRECATION WARNING: Relation#all is deprecated. If you want to eager-load a relation, you can call #load (e.g. `Post.where(published: true).load`). If you want to get an array of records from a relation, you can call #to_a (e.g. `Post.where(published: true).to_a`).
=> false

Bir şey yap ya, böyle bir şey için bir koşullu olduğunda scoped döndüren şikayetleri/: kütüphanelerde kullanım örnekleri var

module AmongConcern
  extend ActiveSupport::Concern

  module ClassMethods
    def among(ids)
      return scoped if ids.blank?

      where(id: ids)
    end
  end
end

all scoped bunu değiştirmek isterseniz rasgele sorunlar among kapsam zincirinde kullanılan yere göre karşı karşıya. Örneğin, Model.where(some: value).among(ids) sorgu çalışır kapsamı döndürmek yerine.

İstediğim sadece bir kapsam verir ActiveRecord::Relation idempotent bir yöntemdir.

Burada ne yapmalıyım?

CEVAP
13 AĞUSTOS 2013, Salı


where(nil) Raylar 3 ve 4 hem çalışan scoped, gerçek bir yedek gibi görünüyor. :(

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • FamilyFeud

    FamilyFeud

    22 AĞUSTOS 2006
  • Mary Jane Tauyan

    Mary Jane Ta

    20 AĞUSTOS 2009
  • TitaniumBackup

    TitaniumBack

    10 EYLÜL 2011