neo*_*ode 5 ruby ruby-on-rails
我在rails中使用并收到以下错误:
undefined method `enum' for #<Class:0x007f03202a1190
Run Code Online (Sandbox Code Playgroud)
模型
class Location < ActiveRecord::Base
enum status: [ :current, :preffered ]
end
Run Code Online (Sandbox Code Playgroud)
我该如何删除此错误.
ActiveRecord::Enum只是在Rails中引入commit db41eb8a,到目前为止,这个提交只发布了Rails标签v4.1.0.beta1.
你正在使用的当前Rails gem可能还没有这个提交,因此没有实现的代码enum.
要查看您拥有的Rails gem版本,请运行:
bundle show rails
Run Code Online (Sandbox Code Playgroud)
我只是跑了bundle update然后bundle show rails,我正在展示:
[PATH TO YOUR GEMS]/rails-4.0.2
Run Code Online (Sandbox Code Playgroud)
此版本的gem不包含代码enum.你可以看到这个比较什么是v4.0.2什么是v4.0.1.beta1.如果您单击"文件已更改"然后在页面中搜索enum.rb,您将看到这是完全新添加的代码.
如果您想确保获得新标记的Rails版本,可以修改Gemfile,以便包含rails的行如下所示:
gem 'rails', :git => 'git://github.com/rails/rails.git', :tag => 'v4.1.0.beta1'
Run Code Online (Sandbox Code Playgroud)
做完之后bundle update,你可以看到bundle show rails你有以下rails gem:
[PATH TO YOUR GEMS]/rails-f706d5f945c5
Run Code Online (Sandbox Code Playgroud)
f706d5f945c5是标记为发布的提交v4.1.0.beta1.
获得Rails gem的最新版本后,您应该可以访问此enum功能.
| 归档时间: |
|
| 查看次数: |
5247 次 |
| 最近记录: |