Próbuję sideload dane active_model_serializer dla aplikacji Ember i uzyskać NoMethodError gdy próbuję obejmują obiekty:Rails/Ember - active_model_serializer - niezdefiniowana metoda `obiekt”, gdy sideloading
metoda niezdefiniowany ` obiekt”dla #email: 0x00000100d33d20
to zdarza się tylko wtedy, gdy: include => true jest ustawiony w następujący sposób:
class ContactSerializer < ActiveModel::Serializer
embed :ids, :include => true
attributes :first_name, :last_name
has_many :emails
end
Moje modele wyglądać następująco:
class Contact < ActiveRecord::Base
attr_accessible :first_name, :last_name, :company,
belongs_to :account
belongs_to :user
has_many :emails
end
class Email < ActiveRecord::Base
attr_accessible :email_address, :email_type_id, :is_primary
belongs_to :contact
end
Mój kontroler wygląda następująco:
def show
@contact = @current_user.contacts.where(:id => params[:id]).includes(:emails).first
render :json => @contact
end
góry dziękuję.
Gdzie jest twój 'EmailSerializer'? Jeśli próbujesz osadzić serializowaną wersję instancji 'Email', jestem pewien, że potrzebujesz' Email', aby mieć powiązany serializator. 'object' istnieje tylko w klasach rozszerzających' ActiveModel :: Serializer'. – deefour
Masz rację; Czekałem na odpowiedź na pytanie o to pytanie na wypadek, gdyby ktoś inny miał problem. Dzięki! – user1938736