Невозможно сосчитать записи для связанной модели NoMethodError - PullRequest
0 голосов
/ 01 июня 2018

Я пытался несколькими способами получить количество всех заявлений о приеме на работу для той модели работы, которую имеет работодатель.Когда речь идет об одной конкретной работе ( job.job_applications.count ), она работает.Вы можете фактически посчитать заявки на эту работу.При попытке суммировать все заявки на работу для всех работ.Возможно, я что-то упустил при установлении отношений.Я получаю сообщение об ошибке ниже:

строка кода, которая разрывается: <%= current_employer.jobs.job_applications.count %>

  undefined method job_applications' for #<Job::ActiveRecord_Associations_CollectionProxy:0x0000000011066998>

Код, который я написал заранее, ниже:

схема

  job
  create_table "jobs", force: :cascade do |t|
    t.string "job_title"
    t.text "required_exp"
    t.text "job_description"
    t.text "job_requirements"
    t.bigint "employer_id"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
    t.string "slug"
    t.bigint "visit_id"
    t.index ["employer_id"], name: "index_jobs_on_employer_id"
    t.index ["slug"], name: "index_jobs_on_slug", unique: true
  end


 job applications
 create_table "job_applications", force: :cascade do |t|
    t.bigint "user_id"
    t.string "user_resume_link"
    t.string "user_contact_time"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
    t.string "user_first_name"
    t.string "user_last_name"
    t.bigint "job_id"
    t.index ["job_id"], name: "index_job_applications_on_job_id"
    t.index ["user_id"], name: "index_job_applications_on_user_id"
  end

job.rb

class Job < ApplicationRecord
belongs_to :employer
has_many :job_applications, dependent: :destroy
has_one :job_category
end

job_application.rb

class JobApplication < ApplicationRecord
belongs_to :user
belongs_to :job
end

Employer.rb

class Employer < ApplicationRecord
  has_many :jobs, :dependent => :destroy
end

user.rb

class User < ApplicationRecord
  has_many :job_applications, dependent: :destroy
  has_many :jobs, :through => :job_applications
end

1 Ответ

0 голосов
/ 01 июня 2018
class Employer < ApplicationRecord
  has_many :jobs, :dependent => :destroy
  has_many :job_applications, through: :jobs
end

А потом просто позвоните current_employer.job_applications.count

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...