1

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

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

我做错了什么?

4

3 回答 3

1

您正在尝试创建User而不是创建Ticket.

将您的代码更改为:

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

希望,它会有所帮助。

于 2013-05-22T09:36:07.263 回答
1

您正在尝试创建用户实例而不是票证。

于 2013-05-22T09:37:26.097 回答
1

此外,如果您讨厌标记可访问列表中的每个属性,您更愿意将其添加到 config/application.rb

config.active_record.whitelist_attributes = false

于 2013-05-22T09:53:29.657 回答