public_activity和rails 4

时间:2013-06-11 11:36:24

标签: ruby-on-rails ruby-on-rails-4

我在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.

有人能帮助我吗?

3 个答案:

答案 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