【问题标题】:creating records from rails console error从 Rails 控制台错误创建记录
【发布时间】:2012-12-22 14:29:00
【问题描述】:

我正在关注 Lynda ruby​​ on rails 教程。

这是我必须运行的代码 "subject = Subject.new(:name => "First Subject", :position => 1, :visible => true)"

这是我的错误信息:

ActiveModel::MassAssignmentSecurity::Error: Can't mass-assign protected attributes: name, position, visible
    from /Users/lexi87/.rvm/gems/ruby-1.9.2-p320/gems/activemodel-3.2.9/lib/active_model/mass_assignment_security/sanitizer.rb:48:in `process_removed_attributes'
    from /Users/lexi87/.rvm/gems/ruby-1.9.2-p320/gems/activemodel-3.2.9/lib/active_model/mass_assignment_security/sanitizer.rb:20:in `debug_protected_attribute_removal'
    from /Users/lexi87/.rvm/gems/ruby-1.9.2-p320/gems/activemodel-3.2.9/lib/active_model/mass_assignment_security/sanitizer.rb:12:in `sanitize'
    from /Users/lexi87/.rvm/gems/ruby-1.9.2-p320/gems/activemodel-3.2.9/lib/active_model/mass_assignment_security.rb:230:in `sanitize_for_mass_assignment'
    from /Users/lexi87/.rvm/gems/ruby-1.9.2-p320/gems/activerecord-3.2.9/lib/active_record/attribute_assignment.rb:75:in `assign_attributes'
    from /Users/lexi87/.rvm/gems/ruby-1.9.2-p320/gems/activerecord-3.2.9/lib/active_record/base.rb:497:in `initialize'
    from (irb):9:in `new'
    from (irb):9
    from /Users/lexi87/.rvm/gems/ruby-1.9.2-p320/gems/railties-3.2.9/lib/rails/commands/console.rb:47:in `start'
    from /Users/lexi87/.rvm/gems/ruby-1.9.2-p320/gems/railties-3.2.9/lib/rails/commands/console.rb:8:in `start'
    from /Users/lexi87/.rvm/gems/ruby-1.9.2-p320/gems/railties-3.2.9/lib/rails/commands.rb:41:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'

这是我来自模型的 subject.rb:

class Subject < ActiveRecord::Base
# attr_accessible :title, :body, :name, :position, :visible
end

【问题讨论】:

标签: ruby-on-rails


【解决方案1】:

您需要取消注释 attr_accessible,以 # 开头的行被解释器忽略

   class Subject < ActiveRecord::Base
        attr_accessible :title, :body, :name, :position, :visible
    end

无法批量分配受保护的属性:名称、位置、可见

attr_accessible 指定可以通过批量分配设置的属性列表。

【讨论】:

  • 对不起,我忘了提到我在发帖之前已经这样做了。这并没有什么不同。我只是再次进行了仔细检查。
猜你喜欢
  • 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
相关资源
最近更新 更多