1

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

有谁能够帮我?

4

3 回答 3

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

于 2013-06-11T12:29:26.830 回答
3

最新版本的 public_activity gem 已检查活动记录版本以支持 rails 4,但似乎尚未在 ruby​​gems 上。通过使用 github 版本,我能够克服这个错误

在我的宝石文件中:

宝石'public_activity',github:'pokonski/public_activity'

然后我重新启动服务器,错误消失了。

于 2013-08-02T14:43:52.153 回答
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
于 2013-11-20T12:24:38.677 回答