调试输出如下所示:
!ruby/object:Business
attributes:
business_type: 8
type_count: 2
但是如何访问这些属性?
我在这里感到愚蠢:/
编辑: 我认为还有一些代码:
<% @serviceSections.each do |k,v| %>
<% c = @bc.select{|s| s.business_type == k} %>
<%= debug(c.type_count) %>
<% end %>
这只是给我错误
未定义的方法`type_count'用于[#&lt;业务business_type:8&gt;]:数组
EDIT2
我主要是个白痴:-)已经晚了......
我需要做的就是检查:
<% if !c.respond_to?("type_count") %>
答案 0 :(得分:4)
Business.business_type # => 8
Business.type_count # => 2
这要求在Business
类中定义一个属性读取器,通常是这样的:
class Business
attr_reader :business_type, :type_count
# more code ...
end
如果您想要set
值,则应该定义属性访问者:
class Business
attr_accessor :business_type, :type_count
# more code ...
end
然后你就可以:
Business.business_type = 17
Business.type_count = 22
答案 1 :(得分:1)
Documentation说:“虽然在上面的示例中看起来好像这个方法返回一个数组,它实际上返回一个关系对象,并且可以附加其他查询方法,例如ActiveRecord中的其他方法: :QueryMethods“
考虑到这一点,以下应该做的伎俩
c.each do |r|
puts r.type_count
end
如果您确定select
只会返回一条记录,那么以下内容也会有效。
<%= debug c[0].type_count %>