Sto cercando di sideload dati in active_model_serializer per un'applicazione Ember e ottenere un NoMethodError quando tento di includere gli oggetti:Rails/Ember - active_model_serializer - metodo non definito `oggetto' quando sideloading
metodo non definito` oggetto' per #email: 0x00000100d33d20
succede solo quando: include => true viene impostato, in questo modo:
class ContactSerializer < ActiveModel::Serializer
embed :ids, :include => true
attributes :first_name, :last_name
has_many :emails
end
I miei modelli simile a questa:
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
mio regolatore di simile a questa:
def show
@contact = @current_user.contacts.where(:id => params[:id]).includes(:emails).first
render :json => @contact
end
Grazie in anticipo.
Dov'è il tuo 'EmailSerializer'? Se stai cercando di incorporare una versione serializzata di un'istanza 'Email', sono abbastanza sicuro che sia necessario' Email' per avere un serializzatore associato. 'object' esiste solo all'interno delle classi estendendo' ActiveModel :: Serializer'. – deefour
Hai ragione; Stavo aspettando il timeout della domanda per rispondere a questo nel caso in cui qualcun altro ha il problema. Grazie! – user1938736