Проблемы с has_many ассоциациями searchkick - PullRequest
0 голосов
/ 04 апреля 2020

У меня есть проблема с использованием Searchkick со связанными моделями. Я хотел бы иметь возможность выполнить поиск, который может перечислить всю информацию о модели из модели списка. Например, "frederi c 2020-01-01"

Я хотел бы, чтобы это возвращало поля, относящиеся к frederi c (который в данном случае является account_name) и дату, которая связана с модельный пост

Может кто-нибудь мне помочь? Модели:

   class List < ApplicationRecord
    searchkick 

    has_many :people

end

class Person < ApplicationRecord
  has_many :accounts
  belongs_to :list
  searchkick
end

class Account < ApplicationRecord
  has_many :posts
  belongs_to :person

  searchkick
end


class Post < ApplicationRecord
  belongs_to :account
  searchkick
end

И на List_controller:

class ListsController < ApplicationController
  def index

    if params[:keywords].present?

      @lists = List.search(params[:keywords], operator: "or")
    else 
      @lists = List.all
    end
  end
end

Моя схема.rb


  create_table "accounts", force: :cascade do |t|
    t.string "social_network"
    t.string "name_account"
    t.integer "person_id", null: false
    t.datetime "created_at", precision: 6, null: false
    t.datetime "updated_at", precision: 6, null: false
    t.index ["person_id"], name: "index_accounts_on_person_id"
  end

  create_table "lists", force: :cascade do |t|
    t.string "name"
    t.datetime "created_at", precision: 6, null: false
    t.datetime "updated_at", precision: 6, null: false
  end

  create_table "people", force: :cascade do |t|
    t.string "name"
    t.integer "list_id", null: false
    t.datetime "created_at", precision: 6, null: false
    t.datetime "updated_at", precision: 6, null: false
    t.index ["list_id"], name: "index_people_on_list_id"
  end

  create_table "posts", force: :cascade do |t|
    t.string "post_text"
    t.date "date"
    t.string "link"
    t.integer "account_id", null: false
    t.datetime "created_at", precision: 6, null: false
    t.datetime "updated_at", precision: 6, null: false
    t.index ["account_id"], name: "index_posts_on_account_id"
  end

  add_foreign_key "accounts", "people"
  add_foreign_key "people", "lists"
  add_foreign_key "posts", "accounts"
end

...