如何在 rails 上为 ruby 中的对象取值

How to take value for Object result in ruby on rails

我想从对象结果中打印特定值。这是我正在执行 SQL 查询并从视图 table 中获取所有数据,所有数据来自 "Employee_Information" 视图(table)。 hr_controller.rb

class HrController < ApplicationController

  def internal_employee_page        
    @employees = MysqlConnection.connection.select_all("SELECT * FROM Employee_Information")
  end 
end

internal_employee_page.html.erb这是我的第一个观点

<div id="job_details">
    <% @employees.each do |emp| %>
        <%= render partial: "hr/employee_details", locals: {emp: emp} %>
    <% end %>               
</div>

_employee_details.html.erb这是我的第二个观点

<h3> User Name : <%= emp%> </h3>

像这样我正在尝试打印所有值 然后我得到了以下结果 我想打印每个值 我在第二个视图中也尝试过

<h3> User Name : <%= emp.full_name%> </h3>

但是我得到了错误: 请帮助我,我根据我的知识尝试了每件事,我哪里错了,有什么问题

<h3> User Name : <%= emp.full_name%> </h3>

full_name 不是员工实例的属性,这就是您收到此错误的原因。尝试获取该员工实例中存在的特定属性。

试试这个:

<h3> User Name : <%= emp["full_name"] %> </h3>

您正在尝试从哈希中读取值,因此 emp.full_name 将不起作用,您可以从哈希中读取值,例如 Hash['key']

所以 full_name 做 <%= emp['full_name'] %>

现在,您的响应对象只是简单的 Hash 对象,要访问键的值,您需要使用 Hash 方法,例如 []fetch检索值。如果您想要更多类似语法的方法,您可以执行以下操作之一:

  • 使用 ActiveRecord 或其他 ORM 映射器
  • 自己创建动态或静态 类 并将结果映射到它们
  • Monkey Patch Hash 用类似 method_missing 的东西来伪造这个概念