1

学习红宝石(或尝试。)

我正在使用 Mysql2 gem 查询我知道只会返回一条记录的数据(LIMIT 1。)但是,Mysql2 返回一个 Mysql2::Result 我必须迭代以获得我的值:

client2.query("SELECT `Parent_ID`,`Path` FROM `Categories` WHERE (`ID` = 83) LIMIT 1").each do |row|
      local_var = row['Path']
    end

当然,local_var 不在范围内,因此此方法不会将变量设置为在脚本其余部分的循环之外使用。

不应该这么难。:)

  1. 有没有办法从不涉及循环迭代的 Mysql2 获得单个结果?
  2. 如果没有,我如何设置一个局部变量(或其他一些全局对象值)来存储结果?

谢谢!

4

2 回答 2

1

找到以下答案:

Ruby / MySQL 获取单行但仍在使用 .each?

不需要循环。只需先调用 Mysql2::Result

local_var = row.first['Path']
于 2013-07-16T02:39:46.673 回答
0

您的问题是如何获取模型而不是模型数组?

模型

如果您需要名称:

Category.find(83).name
模型数组

如果您需要每个人的名称:

# Find by the ID
Category.all.each do |result|
   result.name
end

# Find by one attribute
Category.find_all_by_cod(83).each do |result|
   result.name
end
于 2013-07-16T14:32:42.437 回答