我正在使用 IndexTank 和 Tanker gem 在我的 Rails 应用程序上实现全文搜索,但是在尝试对我的索引使用 search_tank 方法时出现错误 (URI::InvalidURIError bad URI(is not URI?))。
这是我得到错误的控制器方法
def search
if params[:query]
@posts = Post.search_tank(params[:query], :page => 1, :per_page => 10)
else
@posts = []
end
end
这是我定义索引的 Post 模型的一部分
if ENV['RAILS_ENV'] === "production"
index = 'idx'
else
index = 'test'
end
tankit index do
indexes :title
indexes :description
end
# define the callbacks to update or delete the index
after_save :update_tank_indexes
after_destroy :delete_tank_indexes
search_tank 方法在我在 rails 控制台中测试时有效。其他帖子似乎表明这可能与 config/routes.rb 中设置的路由有关。我设置的就是这个。
root :to => 'public#index'
match ':controller(/:action(/:id))(.:format)'
我已经四处寻找答案,但我有点难过。任何帮助将不胜感激。