私のコントローラーでは、アクションを作成してモデルを作成しようとするとエラーが発生しました[大量割り当てができません]が、私の仕様では、大量割り当てモデルのテストが成功しました!?!
私のモデル:
class Customer < ActiveRecord::Base
attr_accessible :doc, :doc_rg, :name, :birthday, :name_sec, :address, :state_id, :city_id, :district_id,
:customer_pj, :is_customer, :segment_id, :activity_id, :person_type, :person_id
belongs_to :person , :polymorphic => true, dependent: :destroy
has_many :histories
has_many :emails
def self.search(search)
if search
conditions = []
conditions << ['name LIKE ?', "%#{search}%"]
find(:all, :conditions => conditions)
else
find(:all)
end
end
end
ランダム化された方法で、コントローラーにもattr_accessibleを設定するのにうんざりしています。
コントローラー:
class CustomersController < ApplicationController
include ActiveModel::MassAssignmentSecurity
attr_accessible :doc, :doc_rg, :name, :birthday, :name_sec, :address, :state_id, :city_id, :district_id, :customer_pj, :is_customer
autocomplete :business_segment, :name, :full => true
autocomplete :business_activity, :name, :full => true
[...]
end
テスト、合格したテスト
describe "accessible attributes" do
it "should allow access to basics fields" do
expect do
@customer.save
end.should_not raise_error(ActiveModel::MassAssignmentSecurity::Error)
end
end
エラー:
ActiveModel::MassAssignmentSecurity::Error in CustomersController#create
Can't mass-assign protected attributes: doc, doc_rg, name_sec, address, state_id, city_id, district_id, customer_pj, is_customer
https://github.com/megabga/crm
1.9.2p320
レール3.2
マックOS
pg