1

调试输出如下所示:

!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 %>

这只是给了我错误

[# <业务业务类型:8>]的未定义方法`type_count':数组

编辑2

我主要是个白痴:-)已经晚了....

我需要做的只是检查:

<% if !c.respond_to?("type_count") %>
4

2 回答 2

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
于 2013-01-14T07:56:06.063 回答
1

文档说:“虽然在上面的示例中,这个方法看起来好像返回一个数组,但它实际上返回一个关系对象,并且可以附加其他查询方法,例如 ActiveRecord::QueryMethods 中的其他方法。”

考虑到这一点,以下应该可以解决问题

c.each do |r|
  puts r.type_count
end

如果您确定只会返回一条记录,select那么以下内容也将起作用。

<%= debug c[0].type_count %>

于 2013-01-14T08:26:11.227 回答