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

  • CNNMoney

    CNNMoney

    16 Kasım 2006
  • International Secret Agents Concerts

    Internationa

    2 Aralık 2008
  • Paulo Bautista

    Paulo Bautis

    21 Aralık 2008