我目前正在使用 Grape 和 Rails 5 api 模式构建我的第一个 API,到目前为止进展顺利。我决定安装Impressionist gem 以便能够记录某个模型的视图计数(未来的“流行”页面),但我遇到了一个问题,我觉得我已经正确设置了 gem,但是impressionist
用于实际记录的方法数据库中的信息未定义。
在我的模型中,gem 是这样初始化的is_impressionable :counter_cache => true
然后我有app/api/my_app/my_model.rb
module MyApp
class MyModel < Grape::API
# GET /api/v1/model/:slug
desc "Returns a model record"
params do
requires :slug, type: String, desc: "Model slug", allow_blank: false
end
route_param :slug do
get do
my_model = MyModel.friendly.find(params[:slug])
impressionist(my_model)
present my_model, with: MyModelPresenter
end
end
end
end
记录活动,但印象派方法未定义。我也试过ImpressionistController::ClassMethods.impressionist
了,没有成功。我还有其他的 gem,比如friendly_id 和 will_paginate,它们在这个设置下可以完美地开箱即用。我必须要求特定的东西吗?