activerecord信誉系统gem阻止保存新对象
我正在跟踪railscast添加一个活动记录声誉系统。()我有一件模型衬衫,我希望用户能够投票。我用以下内容更新了我的文件:activerecord信誉系统gem阻止保存新对象,activerecord,Activerecord,我正在跟踪railscast添加一个活动记录声誉系统。()我有一件模型衬衫,我希望用户能够投票。我用以下内容更新了我的文件: gem 'activerecord-reputation-system', require: 'reputation_system' 我运行了一个bundle安装并重新启动了服务器。现在,当我尝试创建一件新衬衫时,我收到一个通知,即即使我输入了一个名称,衬衫仍缺少一个名称,并且我无法创建一件新衬衫。一旦我移除gem并运行bundle安装,一切都会恢复正常,我就能够毫无问
gem 'activerecord-reputation-system', require: 'reputation_system'
我运行了一个bundle安装并重新启动了服务器。现在,当我尝试创建一件新衬衫时,我收到一个通知,即即使我输入了一个名称,衬衫仍缺少一个名称,并且我无法创建一件新衬衫。一旦我移除gem并运行bundle安装,一切都会恢复正常,我就能够毫无问题地创建一件衬衫。知道这是怎么回事吗
以下是日志:
Started POST "/shirts" for 127.0.0.1 at 2014-11-06 11:59:18 -0500
Processing by ShirtsController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"eiVOinXgtMUoPGwI5IK3n4GFGWv/0xA8ZdD6b6Pvgko=", "shirt"=>{"name"=>"asfas", "category"=>"Startup", "description"=>"", "url"=>"", "approved"=>"0"}, "commit"=>"Submit Changes"}
WARNING: Can't mass-assign protected attributes for Shirt: name, category, url, approved, description
app/controllers/shirts_controller.rb:11:in `create'
(0.2ms) begin transaction
(0.1ms) rollback transaction
Rendered admins/new_shirt.html.erb within layouts/application (5.6ms)
User Load (0.3ms) SELECT "users".* FROM "users" WHERE "users"."id" = 3 LIMIT 1
Completed 200 OK in 318ms (Views: 232.8ms | ActiveRecord: 1.2ms)
Started GET "/assets/sessions.css?body=1" for 127.0.0.1 at 2014-11-06 11:59:18 -0500
Started GET "/assets/shirts.css?body=1" for 127.0.0.1 at 2014-11-06 11:59:18 -0500
Started GET "/assets/jquery.js?body=1" for 127.0.0.1 at 2014-11-06 11:59:18 -0500
Started GET "/assets/jquery_ujs.js?body=1" for 127.0.0.1 at 2014-11-06 11:59:18 -0500
Started GET "/assets/custom.css?body=1" for 127.0.0.1 at 2014-11-06 11:59:18 -0500
Started GET "/assets/users.css?body=1" for 127.0.0.1 at 2014-11-06 11:59:18 -0500
Started GET "/assets/bootstrap.js?body=1" for 127.0.0.1 at 2014-11-06 11:59:18 -0500
Started GET "/assets/turbolinks.js?body=1" for 127.0.0.1 at 2014-11-06 11:59:18 -0500
Started GET "/assets/sessions.js?body=1" for 127.0.0.1 at 2014-11-06 11:59:18 -0500
Started GET "/assets/shirts.js?body=1" for 127.0.0.1 at 2014-11-06 11:59:18 -0500
Started GET "/assets/users.js?body=1" for 127.0.0.1 at 2014-11-06 11:59:18 -0500
Started GET "/assets/admins.js?body=1" for 127.0.0.1 at 2014-11-06 11:59:18 -0500
Started GET "/assets/admins.css?body=1" for 127.0.0.1 at 2014-11-06 11:59:18 -0500
Started GET "/assets/application.css?body=1" for 127.0.0.1 at 2014-11-06 11:59:18 -0500
Started GET "/assets/application.js?body=1" for 127.0.0.1 at 2014-11-06 11:59:18 -0500
使用以下gem解决了这个问题
gem 'activerecord-reputation-system', github: 'NARKOZ/activerecord-reputation-system', branch: 'rails4'
由于3.0版activerecord信誉系统支持Rails 4,并且该漏洞已在3.0.1版中修复,因此建议使用原始的
activerecord信誉系统
,因为它现在支持Rails 4,并且该漏洞已修复。