【发布时间】:2021-12-30 10:00:53
【问题描述】:
我刚刚遇到了一个ruby语法问题:
枚举示例为:
class AaaBbb < ApplicationRecord
enum number: { a: 1, b: 2, c: 3, d: 5 }
或
class AaaBbb < ApplicationRecord
enum number: { "a" => 1, "b" => 2, "c" => 3, "d" => 5 }
函数是:
def find_value
AaaBbb.numbers.each do |key, value|
puts "#{key} = #{value}"
if key == AaaBbb.numbers[:key] (WRONG CODE HERE, NEED TO FIX)
return value
else
return 0
end
end
end
所以我正在尝试编写一个函数,如果它找到键,则返回值。
【问题讨论】:
-
enum number...将 AaaBbb 模型中名为 'number' 的列声明为enum列类型。你期望AaaBbb.numbers是什么?没有与枚举列相关的类方法numbers。 -
@LesNightingill Rails 在声明枚举时自动生成复数方法
-
@maxpleaner 你确定吗?我在 Rails 6.1.4.1 中没有看到它,我确实看到了一个与枚举列同名的奇异类方法。 (它返回列的键/值的散列)。
-
@maxpleaner 你是对的......,我没有在我的应用程序 b/c 中看到它,列名复数与单数相同! (它是“通过”)。
标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4 ruby-on-rails-5