[英]how to get :through association values in a method?
在我的一个模特中,我有这个
has_many :professionals
has_many :services, :through => :professionals
我正在尝试看看如何从服务中获取价值
我的服务模型中有列service
和description
。 我正在使用Elasticsearch,并且想为服务模型建立索引。
def service_name
services.map(&:service)
end
我不确定映射是否正确,我应该使用以下方法获取json:
def to_indexed_json
to_json(
include: {
professionals: {
only: [:first_name, :last_name]
},
services: {
only: [:service_name]
}
}
)
end
这就是我得到的
"professionals": [
{
"first_name": "Happy",
"last_name": "Gilmore"
}
],
"services": []
服务得到一个空数组。 如果是直通协会,是否应将其封闭在专业人员内部?
需要一些通过协会的帮助以及正确的方法。
谢谢
使用:methods
参数可将ActiveRecord instance methods
包括在JSON输出中。 :only
和:except
DB columns only
使用DB columns only
。
请参阅: http : //apidock.com/rails/ActiveRecord/Serialization/to_json
尝试这个:
def to_indexed_json
to_json(
methods: [:service_name],
include: {
professionals: { only: [:first_name, :last_name] }
}
)
end
和#service_name应该像这样:
def service_name
services.pluck(:service)
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.