İç içe geçmiş özniteliklere sahip bir formum var. Şimdi benim :reject_if =>
bildirimde iç içe modelde bir özniteliği kontrol etmek istiyorum, örneğin first_record?
Böyle bir yönteme erişmek için bir yol var mı? Bana öyle görünüyor ki, bir alanın boş olup olmadığını kontrol etmek için sadece gönderilen öznitelik karmasına erişebilirsiniz. Teşekkürler!raylar accepts_nested_attributes ve: reject_if
cevap
docs http://api.rubyonrails.org/classes/ActiveRecord/NestedAttributes/ClassMethods.html
göre Alternatif:
class Member < ActiveRecord::Base
has_many :posts
accepts_nested_attributes_for :posts, :reject_if => :new_record?
end
class Member < ActiveRecord::Base
has_many :posts
accepts_nested_attributes_for :posts, :reject_if => :reject_posts
def reject_posts(attributed)
attributed['title'].blank?
end
end
Bu sizin için çalışması gerekir: reject_if da yöntemler kullanılarak bir sembolü kabul eder. Temel olarak bu, özel işlevde istediğiniz herhangi bir şeyi yapabileceğiniz anlamına gelir.
Evet, ancak çağrılan yöntem, üye modelindedir. Yapılmakta olan iç içe nesnede bir yöntem aramak istiyorum. Mesela şunu kabul etmek istiyorum: accepts_nested_attributes_for: posts,: reject_if => post.first_record? '' Post '' un bir yöntemi 'first_record? 'Olduğunu varsayarak. Oluşturulmakta olan nesnenin bu şekilde mevcut olup olmadığından emin değilim, veya nesne gerçekte oluşturulmadan önce:: reject_if => 'çağrılıyorsa ... – Kasper
Aslında, problemi başka bir şekilde çözdüm. Ama iç içe geçmiş nesnenin ": reject_if" için kullanılabilir olup olmadığını merak ediyorum. – Kasper
- 1. Raylar ve işaretleme ve düzenleyici
- 2. Raylar 3 ve FCGI?
- 3. Raylar ve Rake: .rakeTasks?
- 4. Raylar: Çapa seçeneği ve
- 5. Raylar, ActiveRecord ve SubQueries
- 6. Raylar: Ataç ve önizlemeler?
- 7. Raylar 4 ve ActionCable
- 8. Raylar, OAuth ve CSRF koruması
- 9. Raylar: find_by_sql ve sanal sütun
- 10. Raylar 3: Relation.count ve Relation.all.count
- 11. Raylar, görüntü ve izleme koruması
- 12. sti ve raylar içinde has_many
- 13. Ek açıklık ve raylar 3.1
- 14. Raylar i18n ve rotaları javascript'te
- 15. Raylar: hemen çıkın ve çıkın
- 16. Git etiketleme ve raylar gemfile
- 17. Raylar: response_to JSON ve HTML
- 18. Raylar Doğrulamaları ve DRY ilkesi
- 19. Raylar etiketleme ve etiket listesi
- 20. Raylar 3.2.13 ve raylar 4.0.0 arasında nasıl geçiş yapabilirim?
- 21. accepts_nested_attributes_for raylar 4 silinmiyor
- 22. script/raylar vs raylar
- 23. Raylar
- 24. Raylar
- 25. Raylar
- 26. Raylar
- 27. Raylar,
- 28. raylar
- 29. Raylar
- 30. raylar -
Reject_if'in yalnızca iç içe özniteliklerdeki değişiklikleri reddettiğini ve modele kötü iç içe öznitelik değeri kaydedildiğinde bir hataya neden olmayacağını bilmelisiniz. Bozuk iç içe öznitelikler üzerinde bir hata almak istiyorsanız, yalnızca doğrulamayı iç içe modelinize ekleyin ve ana modeli kaydederken bir hata atar. –