【问题标题】:Rails 4: gem 'impressionist' to count view on pins/show.html.erbRails 4:gem 'impressionist' 计算 pin/show.html.erb 上的视图
【发布时间】:2014-12-29 11:01:40
【问题描述】:

我有轨道,用户可以在其中创建图钉。我想在 pin 显示页面上呈现一些视图。假设图钉是个人资料,我想呈现个人资料被查看的次数。

所以我安装了impressionist gem

这是我的实现方式:

App/models/pin.rb

  is_impressionable

App/controllers/pin_controller.rb

  impressionist actions: [:show]

App/views/pins/show.html.erb

<%= @pin.impressionist_count %>

不幸的是,它没有呈现视图数量,而是显示 0。值得注意的是,我不关心获得唯一的 IP 地址视图,我希望每次用户单击 pin 的显示操作时都会更新视图数。

有什么想法可以让我走上正轨吗?

更新 1:

由于我在引脚模型上使用友好 ID,因此我从 pin_controller 中删除了以下行:

  impressionist actions: [:show]

我更新了控制器的显示视图:

 def show
    @disable_nav = true
    @pin.upvoted_users
    impressionist(@pin)
    @pin = Pin.friendly.find(params[:id])
    @commentable = @pin
    @comments = @commentable.comments
    @comment = Comment.new
  end

但现在这是我遇到的错误:

##的未定义方法`impressions_count'

解决方案:

我的错...我忘记对我的模型运行印象数:

Rails generate migration add_impressions_count_to_pins impressions_count:integer 
Rake db:migrate

谢谢:-)

【问题讨论】:

  • 你完成了吗rails g impressionistrake db:migrate
  • 是的,当然,问题是我正在使用friendly_id gem,我会更新我的问题。请参阅 -> 更新 1。

标签: ruby-on-rails ruby database model-view-controller counter


【解决方案1】:

在视图中

<%= @pin.impressionist_count %>  

将上面的一个更改为下面的一个

<%= @pin.impression_count %>

或者你可以这样做

<%= @pin.impressionist_count(:filter=>:ip_address) %>

根据README

【讨论】:

  • 不,它不起作用,我有这个错误:#<0x007fc5fa79b658>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-26
相关资源
最近更新 更多