Rails 4:gem'印象派'计算pin / show.html.erb上的视图

时间:2014-12-29 11:01:40

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

我有rails用户可以创建引脚。我想在pin显示页面上呈现一些观点。让我们说引脚是配置文件,我想渲染一个配置文件被查看的次数。

所以我安装了impressionist gem

以下是我实施它的方式:

应用/模型/ pin.rb

  is_impressionable

应用/控制器/ pin_controller.rb

  impressionist actions: [:show]

应用/视图/针/ show.html.erb

<%= @pin.impressionist_count %>

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

让我走上正轨的任何想法?

更新1:

当我在我的引脚模型上使用友好ID时,我从pin_controller中删除了以下行:

  impressionist actions: [:show]

我更新了控制器的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&#39;对于#

解决方案:

我的不好......我忘了将impressions_count运行到我的模型中:

Rails generate migration add_impressions_count_to_pins impressions_count:integer 
Rake db:migrate

谢谢: - )

1 个答案:

答案 0 :(得分:0)

在视图中

<%= @pin.impressionist_count %>  

将一个以上改为一个

<%= @pin.impression_count %>

或者你可以做

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

根据README