Ruby on rails 带有关联的简单表单复选框

Ruby on rails 带有关联的简单表单复选框,ruby-on-rails,Ruby On Rails,我正在使用简单的表单,我的目标是根据选择创建一个复选框。 我应该将其保存在关联表中 我写这样的模型 class Purchase < ActiveRecord::Base attr_accessible :UserName, :cardno, :ctype has_many :items end class CreateItems < ActiveRecord::Migration def change create_table :items do |t|

我正在使用简单的表单,我的目标是根据选择创建一个复选框。 我应该将其保存在关联表中

我写这样的模型

class Purchase < ActiveRecord::Base

  attr_accessible :UserName, :cardno, :ctype
  has_many :items
end

class CreateItems < ActiveRecord::Migration
  def change
    create_table :items do |t|
      t.timestamps
    end
  end
end

class AddField < ActiveRecord::Migration
  def up
    add_column :purchases, :ctype, :string
    add_column :items, :item_name, :string
     add_column :items, :purchase_id, :integer
  end

  def down
    
    remove_column :purchases, :ctype
    remove_column :items, :item_name
     remove_column :items, :purchase_id
  end
end
class-Purchase
我写过这样的观点

<%= simple_form_for @purchase, :url => { :controller => 'payments', :action => 'show' } do |f| %>

<%= f.input :UserName, :label => "UserName:", :wrapper_html => { :class => 'uname_div'} %>
<%= f.input :cardno, :label => "Number On the Card:", :wrapper_html => { :class => 'uname_div'} %>
 <%= f.collection_radio_buttons :ctype, [[true, 'DebitCard'], [false, 'CreditCard']], :first, :last %>
<%= f.association :items, :label =>" Items Purchased:", :collection => ["Ac","Mobile","fridge"], :as => :check_boxes %>
<%= f.button :submit, :value => "Submit", :class => "sub_div" %>
<% end %>
{:controller=>'payments',:action=>'show'}do | f |%>
用户名:,:wrapper\u html=>{:class=>'uname\u div'}%>
“卡片上的数字:”,:wrapper_html=>{:class=>'uname_div'}%>
“购买的物品:”,:收藏=>[“空调”、“手机”、“冰箱”],:as=>:复选框%>
“提交”,:class=>“sub_div”%>
当我提交数据时,会出现如下错误

ActiveModel::MassAssignmentSecurity::PaymentsController#show中出错

无法批量分配受保护的属性:项\u ID


您必须在模型中的列表中添加
item\u id
,如下所示:

attr_accessible :UserName, :cardno, :ctype, :item_ids
这将列出给定属性的白名单,并允许进行质量分配