找到与另一个匹配的记录(来自另一个表)

问题描述 投票:0回答:1

我有三张桌子usereventexpected_event

  • 我的event被废弃(每天都有一个rake任务)来自另一个网站
  • user可以创造expected_event

所以我想要做的是:当找到一个新的event时,我希望它与用户expected_event进行比较...如果event与任何用户expected_event匹配,则用户会收到一封匹配event (event.department, event.location_name)的电子邮件

我想比较event.departmentexpected_event.department

我不知道怎么做...

expected_event.rb

class ExpectedEvent < ApplicationRecord
  belongs_to :user
  validates :department, presence: true
end

user.rb

class User < ApplicationRecord
  has_many :expected_events
end

在事件模型中我有一些方法来检索qazxsw poi,city_nameand qazxsw poi

location_name

schema.rb

department

编辑

如果我在我的用户模型中添加这样的内容,这是否正确?

  class Event < ApplicationRecord
     def department
       self.city[/\(.*?\)/].gsub(/[()]/, "").to_i
     end

     def city_name
       self.city[/^[^\(]+/].rstrip!
     end

     def location_name
       self.city[/\|(.*)/].gsub("|", "").strip
     end
  end 
ruby-on-rails ruby
1个回答
0
投票

创建新事件时,为什么不查询具有匹配参数的ActiveRecord::Schema.define(version: 20171210203403) do create_table "events", force: :cascade do |t| t.datetime "date" t.string "city" t.datetime "created_at", null: false t.datetime "updated_at", null: false end create_table "users", force: :cascade do |t| t.string "email", default: "", null: false t.string "nickname" #### end create_table "expected_events", force: :cascade do |t| t.integer "department" t.integer "user_id" t.datetime "created_at", null: false t.datetime "updated_at", null: false t.index ["user_id"], name: "index_expected_events_on_user_id" end end 记录。就像是

  has_many :matching_events, through: :events, source: :expected_events
© www.soinside.com 2019 - 2024. All rights reserved.