我有一个User模型,其中一些属性是公共的(可由用户编辑),另一些属于私有(Salt等)。
假设模型有N个公共属性(例如Email和Surname)和M个私有属性(例如Salt,confirmation_token)
我想要做的就像是
user.attrs.each |name, value| do
something(name, value)
end
我可以以某种方式使用attr_accessor吗?
使用rails 4.0.2和ruby 2.0.0
有什么想法吗?干杯
答案 0 :(得分:2)
您可能拥有的属性多于不允许的属性,因此我会创建一个受保护的属性名称数组,并在循环遍历属性时忽略这些属性。
protected_attributes = %w(password salt confirmation_token)
user.attributes.each do |name, value|
unless protected_attributes.include?(name)
something(name, value)
end
end