SORU
10 Mart 2009, Salı


Nasıl ActiveRecord geri çalışan kurtulabilir miyim?

After_save geri bazı modeller var. Genellikle bu iyi bir şey ama bazı durumlarda geliştirme veri oluştururken gibi, geri çalıştırmak zorunda kalmadan modeller kurtarmak istiyorum. Bunu yapmak için basit bir yolu var mı? Benzer bir şey

Person#save( :run_callbacks => false )

ya

Person#save_without_callbacks

Raylar docs baktım ama bir şey çıkmadı. Ancak benim durumumda Raylar doktorlar her zaman bütün hikayeyi anlatmaz.

GÜNCELLEME

Böyle bir modeli gelen aramalar kaldırabilirsiniz açıklar a blog post buldum:

Foo.after_save.clear

Bu yöntemi belgelenmiştir ama iş gibi görünüyor nerede bulamadım.

CEVAP
12 EYLÜL 2011, PAZARTESİ


update_column (Raylar >Kullanın = v3.1) veya update_columns (Raylar >= 4.0), geri ve doğrulamalarını geçmek. Ayrıca bu yöntemler, updated_at iledeğilgüncellendi.

#Rails >= v3.1 only
@person.update_column(:some_attribute, 'value')
#Rails >= v4.0 only
@person.update_columns(attributes)

http://api.rubyonrails.org/classes/ActiveRecord/Persistence.html#method-i-update_column

#2: ayrıca bir nesne oluşturulurken çalışan geri Atlama

class Person < ActiveRecord::Base
  attr_accessor :skip_some_callbacks

  before_validation :do_something
  after_validation :do_something_else

  skip_callback :validation, :before, :do_something, if: :skip_some_callbacks
  skip_callback :validation, :after, :do_something_else, if: :skip_some_callbacks
end

person = Person.new(person_params)
person.skip_some_callbacks = true
person.save

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • EmbarkToHeaven

    EmbarkToHeav

    3 EYLÜL 2007
  • Rachel Raum

    Rachel Raum

    10 EYLÜL 2007
  • Rachel Talbott

    Rachel Talbo

    26 Ocak 2011