我在 mongoid 中使用一个数组来存储用户角色,它大部分工作正常,但是我遇到了 rails 将空白传递给数组并且 mongoid 保存它的问题。
["", "admin", "editor", "author"]
Formtastic 会自动执行此操作以避免另一个问题,我想知道什么。但问题是 mongoid 将空白保存在数组中。我怎么能告诉它忽略空白?
<input id="user_roles_none" name="user[roles][]" type="hidden" value="" />
代码:
field :roles, :type => Array, :default => ["author"]
##USER ROLES
ROLES = %w[admin editor author]
class << self
def with_role(*args)
any_in(:roles => args)
end
end
我确定我可以在 before_save 之前进行回调并删除 nils,但肯定还有另一种我忽略的方法?