0

我需要做什么才能使创建操作有效?

我有一张带有 has_and_belongs_to_many 关联的表。“新”页面工作正常,但是当我选择 itens 并尝试保存它时会引发错误:

无法批量分配受保护的属性:book_id

我试图设置:

config.active_record.whitelist_attributes = false

但它没有改变任何东西

我的模型:

class Book < ActiveRecord::Base
  has_and_belongs_to_many :orbs

  attr_accessible :dataf, :datai, :descr, :nome

  validates :nome, uniqueness: true, presence: true
end

class Orb < ActiveRecord::Base
  belongs_to :orb_type
  has_and_belongs_to_many :books

  attr_accessible :descr, :nome, :orb_type_id

  validates :nome, uniqueness: true, presence: true
end

我的控制器:

  def create
    @orb = Orb.new(params[:orb])

    respond_to do |format|
      if @orb.save
        format.html { redirect_to @orb, notice: 'Orb was successfully created.' }
        format.json { render json: @orb, status: :created, location: @orb }
      else
        format.html { render action: "new" }
        format.json { render json: @orb.errors, status: :unprocessable_entity }
      end
    end
  end

此外,任何人都可以告诉我,当我是 Rails 新手时,我必须做些什么来检查自动框。谢谢!

编辑:将 attr_accessible :book_id 添加到我的 orb 模型会引发错误:

unknown attribute: book_id

它使用 << 操作在控制台上工作。

4

1 回答 1

0

您需要在模型 Orb 上声明 book_id 为可访问

attr_accessible :descr, :nome, :orb_type_id, :book_id

当您编辑一个对象时,如果布尔值复选框的名称正确(与 db 字段相同),它应该根据其值在视图上显示为选中或未选中。

于 2013-09-17T19:14:15.743 回答