给定一个模型,如何遍历所有属性?

Bla*_*man 27 ruby ruby-on-rails

我想循环遍历"用户"模型的所有属性,我该怎么做?

mik*_*kej 52

如果你有一个模型实例,那么它user.attributes就是模型属性及其值的哈希值,例如,你可以这样做:

user.attributes.each_pair do |name, value|
  puts "#{name} = #{value}"
end
Run Code Online (Sandbox Code Playgroud)

如果您没有特定实例,则该类具有返回有关数据库中字段的信息的方法,例如User.columnsUser.content_columns.例如

User.columns.each do |column|
  puts column.name
end
Run Code Online (Sandbox Code Playgroud)

  • 从rails 4开始不推荐使用,现在什么是正确的解决方案? (2认同)
  • 在Rails 4.2.2上,这对我很有用.谢谢mikej. (2认同)
  • 同样,在Rails 4中为我工作.谢谢! (2认同)