无法计算关联模型NoMethodError的记录

时间:2018-06-01 02:00:07

标签: ruby-on-rails activerecord

我尝试了多种方法来获得雇主所拥有的工作模型的所有工作申请的数量。特别是当一个工作( 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 :(得分:1)

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

然后只需致电current_employer.job_applications.count