我想遍历我的'用户'模型的所有属性,我该怎么做?给定一个模型,如何遍历所有属性?
25
A
回答
48
如果你有你的模型的实例,然后user.attributes
是模型的属性和值的哈希因此,举例来说,你可以这样做:
user.attributes.each_pair do |name, value|
puts "#{name} = #{value}"
end
如果你没有一个具体的那么这个类有方法返回关于数据库中的字段的信息,例如User.columns
和User.content_columns
。例如
User.columns.each do |column|
puts column.name
end
1
Article.columns.each do |column|
puts column.name
end
这遍历所有的文章模型中的列对象。
1
@ model.methods返回对象的所有方法的名称。
@ model.methods.grep(/ = $ /)会返回所有写入方法的名称,所以你可以猜测,如果你有一个setter,那么你也有一个读者,所以这可能是一个“属性”。
你也可以检查属性散列(@ model.attributes),它是一个散列,并与数据库中定义的所有列一起使用,这可能是最可靠的方法,因为“methods”方法可能不包含属性读者(和作者)动态生成。 (它可能取决于您使用的RubyOnRails的版本)。
相关问题
- 1. 如何遍历所有模型显示(Name =)属性值
- 2. 遍历所有ServletRequest属性
- 3. 遍历所有类属性
- 4. 如何遍历所有对象属性
- 5. 如何遍历所有属性和alias_attribute?
- 6. 如何遍历一个大理元模型和obtein属性名
- 7. 如何遍历一个类的所有属性?
- 8. Neo4j遍历不加载所有属性
- 9. 遍历所有未知的XML属性
- 10. 遍历Backbone模型的属性并将它们传递给一个函数
- 11. 遍历给定大小的所有树
- 12. 如何遍历所有属性inc。例如[Symbol.iterator]
- 13. 如何遍历中间件函数中的Mongoose模型属性?
- 14. Javascript:如何遍历模型
- 15. 如何遍历JSON模型?
- 16. 如何遍历所有XElement属性并获取它们的值
- 17. 如何遍历字典以获取所有类属性?
- 18. 如何遍历Java bean的所有属性
- 19. 通过一个属性遍历文件
- 20. 遍历一个类的静态属性
- 21. 如何通过名称获取XML属性而不是遍历所有属性?
- 22. Javascript - 如何遍历给定页面的所有URL
- 23. 如何遍历具有特定属性的树
- 24. 任何方式来遍历所有的非枚举属性?
- 25. 如何遍历自定义vb.net对象的每个属性?
- 26. 遍历模型列
- 27. 如何遍历JSON对象的属性?
- 28. 如何遍历对象的属性
- 29. 如何通过jQuery遍历某个类型的所有元素?
- 30. 如何通过XSLT从另一个标签遍历属性
从第4轨开始已弃用,现在有什么正确的解决方案? – 2014-10-06 23:14:00
提到哪种方法已被弃用?他们似乎仍然在API文档中。 – mikej 2014-10-06 23:32:15
这对我在Rails 4.2.2上非常有用。谢谢mikej。 – 2015-12-17 13:12:03