【问题标题】:public_activity and rails 4public_activity 和 rails 4
【发布时间】:2013-06-11 11:36:24
【问题描述】:

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

谁能帮帮我?

【问题讨论】:

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


    【解决方案1】:

    我猜你的问题是你的模型有 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

    【讨论】:

    • 但问题是我的模型中没有一个具有 attr_accessible。我在 github 上有这个应用程序,所以如果您可以查看我的模型并帮助我做到这一点,那就太好了。github.com/MatUrbanski/Bloggers
    • @MateuszUrbański public_activity gem 在这里使用 attr_accessible github.com/pokonski/public_activity/blob/master/lib/…
    • 感谢您的回复,我使用了 protected_attributes gem,一切正常,但我仍然不知道如何按照 rails4 的方式工作......
    • 请澄清您提到的attr_accessible is extracted out of ....没了
    • 感谢大家的帮助,但我决定在 Rails 中构建自己的活动系统以完全使用 Rails 4。
    【解决方案2】:

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

    在我的 gemfile 中:

    gem 'public_activity',github:'pokonski/public_activity'

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

    【讨论】:

      【解决方案3】:

      问题是 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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多