Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何:通过方法中的关联值获取?_Ruby On Rails_Ruby On Rails 3_Ruby On Rails 3.2_Associations_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch - Fatal编程技术网 elasticsearch,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 3.2,Associations,elasticsearch" /> elasticsearch,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 3.2,Associations,elasticsearch" />

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