【发布时间】:2012-12-30 05:58:45
【问题描述】:
我刚刚创建了一个新的 Rails API 应用程序并尝试第一次运行它。 我已经安装了工头 gem,我正在使用命令
foreman start
启动服务器,但出现以下错误:
Exiting
21:52:55 web.1 |
/Users/AM/Documents/RailsWS/app1229/config/initializers/wrap_parameters.rb:8:in
`block in <top (required)>':
undefined method `wrap_parameters' for ActionController::API:Class (NoMethodError)
21:52:55 web.1 |
from /Users/AM/.rvm/gems/ruby-1.9.3-p194-gemset/gems/activesupport-
3.2.8/lib/active_support/lazy_load_hooks.rb:36:in `instance_eval'
21:52:55 web.1 |
from /Users/AM/.rvm/gems/ruby-1.9.3-p194-gemset/gems/activesupport-
3.2.8/lib/active_support/lazy_load_hooks.rb:36:in `execute_hook'
21:52:55 web.1 |
from /Users/AM/.rvm/gems/ruby-1.9.3-p194-gemset/gems/activesupport-
3.2.8/lib/active_support/lazy_load_hooks.rb:26:in `block in on_lo
..........
我已经尝试更新 gemset 并重新设置终端等。
但是没有任何效果。想知道是否有人可以提供有关如何继续诊断此错误来源的想法
谢谢
编辑 这是ApplicationController.rb的内容
class ApplicationController < ActionController::API
include ActionController::MimeResponds
include ActionController::ImplicitRender
end
宝石文件:
source 'https://rubygems.org'
gem 'rails', '3.2.8'
gem 'rails-api'
gem 'pg'
gem 'thin'
gem 'foreman'
gem 'rabl'
gem "paperclip"
gem 'aws-sdk'
group :development do
gem 'annotate', :git=>'git://github.com/ctran/annotate_models.git'
gem 'debugger'
end
错误指向此文件中的第 8 行:wrap_parameters.rb
# Be sure to restart your server when you modify this file.
#
# This file contains settings for ActionController::ParamsWrapper which
# is enabled by default.
# Enable parameter wrapping for JSON. You can disable this by setting :format to an
empty array.
ActiveSupport.on_load(:action_controller) do
ERROR >>>> wrap_parameters format: [:json]
end
# Disable root element in JSON by default.
ActiveSupport.on_load(:active_record) do
self.include_root_in_json = false
end
【问题讨论】:
-
你能确认
ActionController::API是从ActionController::Base继承的吗? -
这是我的 application.rb 文件的内容: class ApplicationController
-
如果你只是
rails server而不是foreman start,输出是否相同? -
是:ruby-1.9.3-p194 AM@~/Documents/RailsWS/app1229 >rails s => Booting Thin => Rails 3.2.8 应用程序开始在0.0.0.0:3000 上开发 => 调用使用 -d 分离 => Ctrl-C 关闭服务器退出 /Users/AM/Documents/RailsWS/app1229/config/initializers/wrap_parameters.rb:8:in
block in <top (required)>': undefined methodwrap_parameters' for ActionController::API:Class (NoMethodError ) -
这可能与 gemset 有关,但我不确定是什么
标签: ruby-on-rails ruby api foreman