Contact associations loaded eagerly where needed

This commit is contained in:
Andres Keskküla 2015-01-08 17:47:54 +02:00
parent 2a1786bb51
commit c0357c7717

View file

@ -39,9 +39,11 @@ module Epp::ContactsHelper
def info_contact
handle_errors(@contact) and return unless @contact
handle_errors(@contact) and return unless rights?
@disclosure = ContactDisclosure.default_values.merge(@contact.disclosure.try(:as_hash) || {})
@disclosure = ContactDisclosure.default_values.merge(@contact.disclosure.try(:as_hash) || {})
@disclosure_policy = @contact.disclosure.try(:attributes_with_flag)
@owner = owner?(false)
# need to reload contact eagerly
@contact = find_contact('with eager load') if @owner # for clarity, could just be true
render 'epp/contacts/info'
end
@ -109,8 +111,12 @@ module Epp::ContactsHelper
## SHARED
def find_contact
contact = Contact.find_by(code: @ph[:id])
def find_contact(eager_load=nil)
if eager_load
contact = Contact.includes(address: :country).find_by(code: @ph[:id])
else
contact = Contact.find_by(code: @ph[:id])
end
unless contact
epp_errors << { code: '2303',
msg: t('errors.messages.epp_obj_does_not_exist'),