I'm trying to sideload data in active_model_serializer for an Ember application and get a NoMethodError when I attempt to include the objects:
undefined method `object' for #Email:0x00000100d33d20
It only happens when :include => true is set, like this:
class ContactSerializer < ActiveModel::Serializer
embed :ids, :include => true
attributes :first_name, :last_name
has_many :emails
end
My models look like this:
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
My controller looks like this:
def show
@contact = @current_user.contacts.where(:id => params[:id]).includes(:emails).first
render :json => @contact
end
Thanks in advance.
As Deefour mentioned above, make sure you have a serializer for any sideloaded objects. In this case, creating EmailSerializer:
class EmailSerializer < ActiveModel::Serializer
attributes :id, :email_address
end
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With