Ruby on rails 如何:通过方法中的关联值获取?
在我的一个模型中,我有这个Ruby on rails 如何:通过方法中的关联值获取?,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-3.2,associations,
elasticsearch,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 3.2,Associations,
elasticsearch,在我的一个模型中,我有这个 has_many :professionals has_many :services, :through => :professionals 我想看看如何从服务中获得价值 我的服务模型中有service和description列。我正在使用elasticsearch,我想索引服务模型 def service_name services.map(&:service) end 我不确定映射是否正确,我应该使用以下方法获取json: def to_in
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": []
服务正在获取一个空数组。如果它是一个通过协会,它应该被封闭在专业人士内吗
需要一些帮助,通过协会和什么是正确的方式
谢谢使用
:方法
参数将ActiveRecord实例方法
包含到JSON输出中<代码>:仅和:除外
仅使用DB列
参考:
试试这个:
def to_indexed_json
to_json(
methods: [:service_name],
include: {
professionals: { only: [:first_name, :last_name] }
}
)
end
和#服务#名称应如下所示:
def service_name
services.pluck(:service)
end