Tôi đang cố gắng để sideload dữ liệu trong active_model_serializer cho một ứng dụng Ember và có được một NoMethodError khi tôi cố gắng bao gồm các đối tượng:Rails/Ember - active_model_serializer - Phương pháp xác định 'đối tượng' khi sideloading
phương pháp xác định ' đối tượng' cho #email: 0x00000100d33d20
Nó chỉ xảy ra khi: bao gồm => đúng được thiết lập, như thế này:
class ContactSerializer < ActiveModel::Serializer
embed :ids, :include => true
attributes :first_name, :last_name
has_many :emails
end
Mô hình của tôi trông như thế này:
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
điều khiển của tôi trông như thế này:
def show
@contact = @current_user.contacts.where(:id => params[:id]).includes(:emails).first
render :json => @contact
end
Cảm ơn trước.
'Trình xử lý email của bạn' ở đâu? Nếu bạn đang cố gắng nhúng một phiên bản được tuần tự hóa của một cá thể 'Email', tôi chắc chắn bạn cần' Email' để có một bộ nối tiếp liên quan. 'object' chỉ tồn tại trong các lớp mở rộng' ActiveModel :: Serializer'. – deefour
Bạn đúng; Tôi đã chờ đợi thời gian chờ câu hỏi để trả lời câu hỏi này trong trường hợp bất kỳ ai khác có vấn đề. Cảm ơn! – user1938736