2012-11-13 14 views
10

Sposób poręcze: inverse_of może być wykorzystane do budowy stowarzyszenie w pamięci między obiektami, dzięki czemu można zmniejszyć zapytań w bazie danych: http://mediumexposure.com/better-memory-associations-inverseof/Czy są jakieś koszty związane z inverse_of? Czy powinniśmy dodać go do relacji tam, gdzie to możliwe?

Jakie są koszty związane z inverse_of? Dlaczego nie zapisujemy odwrotności w każdym istniejącym związku, aby zmniejszyć liczbę zapytań?

+0

+1, naprawdę chciałbym wiedzieć. AFAIK widzę tylko korzyści. Domyślam się, że stanie się domyślnym zachowaniem w późniejszych wersjach railsowych –

+0

. Zastanawiam się - wygląda na to, że powinno to być domyślne w każdym związku. Jedyną wadą, jaką mogłem wymyślić, jest to, że może to wpłynąć na wydajność serwera, jeśli w rezultacie powiększy się obiekt (może zabierając dużo pamięci?). Nie jest to coś, o czym dużo wiem ... – jay

+1

tak, ale wadę poważnie przeciwdziałał fakt, że nie dwa razy pobierasz ten sam obiekt i nie masz dwóch kopii tego samego obiektu w pamięci ... Jedynym powodem, dla którego widzę, jest to, że nie jest tak często, że robisz coś takiego jak "ParentObject.child_objects.first.parent_object' –

Odpowiedz

2

Od Ernie Miller talk at Railsconf 2013 (około 15:30)

[...] inverse_of jest najstarszym elementem ActiveRecord nie używasz, a ty całkowicie powinno. [...]

+0

Oto rozmowa z działającym łączem od czasu zamknięcia Justin.tv: http://www.confreaks.com/videos/2460-railsconf2013-an-intervention-for-activerecord – Nitrodist

Powiązane problemy