2016-04-07 15 views
0

Bir soru üzerinde çalışıyorum ve bir soruya cevap verilebilecek şekilde cevap verin ve cevap verilebilir. Polimorfik bir oyundur derneğim var, öyle ki bir soru ve bir cevap çok oyu alır. Ama bir Cevabın tüm oylarını Soruya çevirmek istiyorum. sadece bir dernek olsaydı, yapabileceği:Bir polimorfik tablo birliğinin güncellenmesi için daha iyi bir yöntem mi arıyorsunuz?

Answer.first.votes.first.update(voteable: Question.first)

ama bu birden dernekler için çalışmaz.

yapmaya çalıştığım:

:

Answer.first.votes.update_all(voteable: Question.first)

ama buna voteable

Ben aynı sonucu elde başka yolu biliyor sütun bulamadığı bir hata döndürdü etmektir

Answer.first.votes.update_all(voteable_type: "Question", voteable_id: 1) Ancak, onun.

+0

Bunu yapmak zorunda bu nasıl eminim – SomeSchmo

cevap

0

Hayır, bunu yapmak mümkün değildir. bir kullanıcıdan yorumuna göre :

planlarım update_all için ne olduğundan emin değilim, ama belgelerine diğer ilişki yöntemlerinin gibi çalışmıyor bu oldukça oldukça açıktır. Nesneleri başlatmaz, ActiveRecord :: İlişkisi değil, yalnızca güncellenmiş kayıtların sayısını döndürür, basitçe veritabanına doğrudan sql gönderir. Hatta örnekler, "raylar gibi" daha "sql gibi" yazılır. Bu yöntemin amacı birçok kayıtta hızlı güncelleme yapmaktır.

Kaynak: https://github.com/rails/rails/issues/17072

İlgili konular