我在Rails 4下遇到了public_activity gem的问题。我已经正确安装了这个gem我输入了rails g public_activity:migration和rake db:migrate。在下一步中,我添加
include PublicActivity::Model
tracked
到我的帖子模型并使用索引操作生成控制器活动。 我的活动控制器:
class ActivitiesController < ApplicationController
def index
@activities = PublicActivity::Activity.order("created_at desc")
end
end
查看它:
<h1>Friend's Activities</h1>
<% @activities.each do |activity| %>
<%= activity.inspect %>
<% end %>
路线是:
resources :activities
当我去http://localhost:3000/activities
时,我有错误:
`attr_accessible` is extracted out of Rails into a gem. Please use new recommended protection model for params(strong_parameters) or add `protected_attributes` to your Gemfile to use old one.
有人能帮助我吗?
答案 0 :(得分:4)
我想你的问题是你的模型有attr_accessible,它是在rails 4之后被提取为一个gem。如果你喜欢在模型中看到attr_accessible,那么添加
gem 'protected_attributes'
到您的Gemfile。
https://github.com/rails/protected_attributes更多文档
如果你想跟随rails4方式,那么这里有一篇文章: http://rubyjunction.us/no-more-attr-accessible-in-ruby-on-rails-4
答案 1 :(得分:3)
最新版本的public_activity gem检查了活动记录版本以支持rails 4,但似乎还没有在rubygems上。我能够通过使用github版本
来解决这个错误在我的gemfile中:
gem'public_activity',github:'pokonski / public_activity'
然后我重新启动了服务器,错误消失了。
答案 2 :(得分:0)
问题是public_activity gem只在设置attr_accessible时检查rails版本。如果您使用的是早期版本,那么Rails 4将包含它。我已将问题提交给github/public_activity/128。我相信在将来的版本中他们会解决它。
现在我的解决方法是创建config / initializers / public_activity.rb
PublicActivity::Activity.class_eval do
attr_accessible :key, :owner, :parameters, :recipient, :trackable
end