我有三张桌子user
,event
,expected_event
event
被废弃(每天都有一个rake任务)来自另一个网站user
可以创造expected_event
所以我想要做的是:当找到一个新的event
时,我希望它与用户expected_event
进行比较...如果event
与任何用户expected_event
匹配,则用户会收到一封匹配event
(event.department, event.location_name)
的电子邮件
我想比较event.department
和expected_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_name
and 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
创建新事件时,为什么不查询具有匹配参数的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