首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gem方法在葡萄Api中不可用

Gem方法在葡萄Api中不可用
EN

Stack Overflow用户
提问于 2018-11-30 14:18:41
回答 1查看 296关注 0票数 1

我目前正在用Grape 5API模式构建我的第一个API,到目前为止,它运行得还不错。我决定安装印象派 gem,以便能够记录某个模型(未来的“流行”页面)的视图计数,但是我遇到了一个问题,我觉得已经正确地设置了gem,但是用于实际记录数据库中的信息的impressionist方法还没有定义。

在我的模型中,gem是像下面的is_impressionable :counter_cache => true一样初始化的

然后我在app/api/my_app/my_model.rb

代码语言:javascript
复制
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,但没有成功。我还有其他宝石,如friendly_id和will_paginate,它们完全可以在这个设置中发挥作用。我需要什么特别的东西吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-30 14:22:44

印象派似乎不支持葡萄:

您可以手动使用它:

代码语言:javascript
复制
  imp = Impression.new
  imp.impressionable_type = object.class.to_s
  imp.impressionable_id = object.id
  imp.user_id = current_user.nil? ? 0 : current_user.id
  imp.controller_name = "topics"
  imp.action_name = "show"
  imp.request_hash = Digest::SHA2.hexdigest(Time.now.to_f.to_s+rand(10000).to_s)
  imp.ip_address = env['REMOTE_ADDR']
  imp.session_hash = request.session_options[:id]
  imp.referrer = request.referer
  imp.save

https://github.com/charlotte-ruby/impressionist/issues/172#issuecomment-62844576

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53559282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档