我正在使用simple_forms,我的目标是根据选择创建一个复选框。 我应该把它保存在一个关联表中。
我写的是像
这样的模型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
我写过像
这样的视图<%= 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 %>
当我提交数据时,会出现类似
的错误ActiveModel :: MassAssignmentSecurity :: PaymentsController中的错误#show
无法批量分配受保护的属性:item_ids
答案 0 :(得分:0)
您必须将item_ids
添加到模型的列表中,如下所示:
attr_accessible :UserName, :cardno, :ctype, :item_ids
这将白名单给定属性,并允许进行质量分配。