为什么我不能用更新设置布尔列?

时间:2010-05-07 14:54:13

标签: ruby-on-rails activerecord

我正在制作用户管理页面。对于我正在创建的系统,用户需要获得批准。有时,会有很多用户批准,所以我想让这很容易。我将其存储为名为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的聊天在我测试时没有任何影响。

我做错了什么?

1 个答案:

答案 0 :(得分:2)

您可能正在使用user.rb

attr_protected :approved