ruby - 如何访问 Ruby/对象属性

标签 ruby

调试输出如下所示:

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

这只是给了我错误

undefined method `type_count' for [# < Business business_type: 8>]:Array

编辑2

我基本上是个白痴:-)已经晚了......

我所需要做的就是实际检查:

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

最佳答案

Business.business_type # => 8
Business.type_count # => 2

这要求在您的 Business 类中定义一个属性读取器,通常如下所示:

class Business
  attr_reader :business_type, :type_count
  # more code ...
end

如果您还想设置值,则应该定义一个属性访问器:

class Business
  attr_accessor :business_type, :type_count
  # more code ...
end

然后您可以:

Business.business_type = 17
Business.type_count = 22

关于ruby - 如何访问 Ruby/对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14314492/

相关文章:

ruby-on-rails - 运行 Ruby 2.3.1 时为 "Gem::InstallError: devise requires Ruby version >= 2.1.0."

ruby - 获取 watir-webdriver 中子节点的集合

Ruby - DateTime,显示两次之间差异的食谱解决方案不起作用,您能看出哪里出了问题吗?

ruby-on-rails - 在 gem 的 rake 任务中需要 gem

ruby - 如何获取已安装的具有 native 扩展的 gem 列表?

ruby - 使用 ruby​​ 将 HTML 转换为纯文本并维护结构/格式

ruby-on-rails - 克隆记录并将远程文件复制到新位置?

ruby - 在 Ruby 中编写 "matching balanced parenthesis"程序的更好方法

mysql - 浏览器显示 MySQL 错误,我没有列

ruby-on-rails - Ruby on Rails DynamoDB AWS 开发工具包 v2