【发布时间】: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 impressionist和rake db:migrate -
是的,当然,问题是我正在使用friendly_id gem,我会更新我的问题。请参阅 -> 更新 1。
标签: ruby-on-rails ruby database model-view-controller counter