我试图在Event模型上创建全文搜索。 该模型包含country_code字段,其中存储国家代码; 我希望能够通过输入国家名称直接按国家/地区进行搜索,让我们说法国代替Fr.
我的范围如下:
pg_search_scope :full_search, against: [:name, :city, :country], associated_against: {
event_type: [:name],
dance_types: [:name]
}
我有一个国家/地区方法
def country
return '' if country_code.blank?
country = ISO3166::Country[country_code]
(country.translations[I18n.locale.to_s] || country.name) unless country.nil?
end
不幸的是,调用我的搜索范围会产生以下错误:
ActiveRecord :: StatementInvalid:PG :: UndefinedColumn:ERROR:列 events.country不存在。
我该如何解决这个问题?
答案 0 :(得分:0)
您是否正确运行迁移?您的数据库似乎甚至没有国家/地区字段,因此难怪它无法搜索它。
$ rake db:migrate VERSION=0
$ rake db:migrate
您也可能没有在模型中正确链接表格。没有所有细节很难说,但这看起来很可疑column events.country
事件应该是单一的,而country应该是column event.country_id
之类的id字段。也许您还没有在模型中正确加入表格,或者您的迁移可能缺少正确的ID字段。
# models/events.rb
has_one :country
# models/country.rb
belongs_to :event
如果这不是答案,我们需要有关您的国家/地区和活动迁移的更多信息。