Rya*_*Mes 3 enums ruby-on-rails
我只是想尝试使用新的rails enum做最简单的事情(我知道它还处于测试阶段)
无论如何,我正在尝试使用rails控制台来拉取对象上的所有枚举(因为它不能在代码中工作),例如
class Interaction < ActiveRecord::Base
enum outcome_type: { hot: 1, neutral: 2, cold: 3 }
end
Run Code Online (Sandbox Code Playgroud)
然后我运行rails控制台并尝试Interaction.outcome_types
根据文档,这应该是相当简单和直接的.
http://edgeapi.rubyonrails.org/classes/ActiveRecord/Enum.html
我只得到错误:/
NoMethodError: undefined method `outcome_types' for #<Class:0x007fb5e595ebb8>
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
这是因为你引用的文档是边缘Rails,你可能使用Rails 4.1.0.beta1,这是一个beta版本,而不是边缘.
4.1.0.beta1于2013年12月18日发布(https://rubygems.org/gems/rails).使您尝试使用的代码的提交工作从2014年1月14日开始:https://github.com/rails/rails/commit/b242b2dbe75f0b5e86e2ce9ef7c2c5ee96e17862
并且它还具有在此提交记录之前工作的方法:
+ Before:
+
+ Conversation::STATUS # => { "active" => 0, "archived" => 1 }
+
+ After:
+
+ Conversation.statuses # => { "active" => 0, "archived" => 1 }
Run Code Online (Sandbox Code Playgroud)
所以我建议更新到边缘Rails,或者在你的情况下使用,Interaction::OUTCOME_TYPE而不是Interaction.outcome_types.它适用于我,使用4.1.0.beta1的新测试应用程序并实现您的确切模型代码.
| 归档时间: |
|
| 查看次数: |
2639 次 |
| 最近记录: |