"无法批量分配受保护的属性"错误,即使它们存在于attr_accessible中

时间:2013-05-22 09:20:09

标签: ruby-on-rails attr accessible

我有一个表,是从数据库迁移创建的:

class CreateTickets < ActiveRecord::Migration
def up
create_table :tickets, :primary_key => :tickets_id do |t|
  t.string :title, null: false
  t.text :body
  t.datetime :create_date
  t.integer :author_id
  t.integer :status, null: false, default: 0
end
end

模特:

class Ticket < ActiveRecord::Base
attr_accessible :title, :body, :create_date, :author_id, :status
end

当我尝试创建记录时:

User.create(title: title,body: body,create_date: Time.zone.now, author_id: @author_id,status: 0)

我收到此错误:

  

无法批量指定受保护的属性:title,body,create_date,author_id,status

我做错了什么?

3 个答案:

答案 0 :(得分:1)

您尝试创建User而不是创建Ticket

将您的代码更改为:

Ticket.create(title: title, body: body, create_date: Time.zone.now, author_id @author_id, status: 0)

希望,这会有所帮助。

答案 1 :(得分:1)

您正在尝试创建用户实例而不是故障单。

答案 2 :(得分:1)

另外,如果你讨厌在可访问列表中标记每个属性,你更愿意在config / application.rb中添加它。

  

config.active_record.whitelist_attributes = false