1
我正在製作一個用戶管理頁面。對於我創建的系統,用戶需要獲得批准。有時候,會有很多用戶批准,所以我想讓它變得容易。我將它存儲爲一個名爲approved
的布爾列。爲什麼我不能更新布爾列?
我記得Edit Multiple Individually Railscast,並認爲它會非常適合。但是,我遇到了一些問題,我追溯到ActiveRecord::Base#update
。
update
在這個例子中正常工作:
>> User.all.map(&:username)
=> ["ben", "fred"]
>> h = {"1"=>{'username'=>'benjamin'}, "2"=>{"username"=>'frederick'}}
=> {"1"=>{"username"=>"benjamin"}, "2"=>{"username"=>"frederick"}}
>> User.update(h.keys, h.values)
=> ...
>> User.all.map(&:username)
=> ["benjamin", "frederick"]
但不是這一個:
>> User.all.map(&:approved)
=> [true, nil]
>> h = {"1"=>{'approved'=>'1'}, "2"=>{'approved'=>'1'}}
>> User.update(h.keys, h.values)
=> ...
>> User.all.map(&:approved)
=> [true, nil]
從'1'
換款到true
沒有有所作爲時,我測試。
我在做什麼錯?
關閉 - 這是'attr_accessible'!奇怪的是,我可以通過'user.approved = true'直接在模型上設置它。這不應該是這樣,對嗎? (我正在使用'authlogic' - 也許'acts_as_authentic'扮演一個角色?) – 2010-05-07 15:37:44
哦...... n/m。有一段時間沒有閱讀過文檔:「[attr_accessible]指定了一個可以通過批量賦值設置的模型屬性的白名單」 – 2010-05-07 15:40:31