gpt4 book ai didi

ruby-on-rails - 为什么 Rails 4.2 + 响应者不断告诉我将响应者添加到 Gemfile?

转载 作者:数据小太阳 更新时间:2023-10-29 06:56:12 26 4
gpt4 key购买 nike

我正在将 Rails 4.1.8 应用程序(也使用 rails-api ~> 0.3.1)升级到 4.2.0.rc2,并希望保留 respond_with 功能。我已将 responders 添加到 Gemfile,但是当我 bin/rake spec 时,我得到:

/Users/sloveless/.gem/ruby/2.1.0/gems/actionpack-4.2.0.rc2/lib/action_controller/metal/mime_responds.rb:10:in `respond_to': The controller-level `respond_to' feature has been extracted to the `responders` gem. Add it to your Gemfile to continue using this feature: (NoMethodError)
gem 'responders', '~> 2.0'
Consult the Rails upgrade guide for details.
from /Users/sloveless/Development/twilight/app/controllers/application_controller.rb:6:in `<class:ApplicationController>'
from /Users/sloveless/Development/twilight/app/controllers/application_controller.rb:1:in `<top (required)>'
from /Users/sloveless/.gem/ruby/2.1.0/gems/activesupport-4.2.0.rc2/lib/active_support/dependencies.rb:274:in `require'
from /Users/sloveless/.gem/ruby/2.1.0/gems/activesupport-4.2.0.rc2/lib/active_support/dependencies.rb:274:in `block in require'
from /Users/sloveless/.gem/ruby/2.1.0/gems/activesupport-4.2.0.rc2/lib/active_support/dependencies.rb:240:in `load_dependency'
from /Users/sloveless/.gem/ruby/2.1.0/gems/activesupport-4.2.0.rc2/lib/active_support/dependencies.rb:274:in `require'
from /Users/sloveless/.gem/ruby/2.1.0/gems/activesupport-4.2.0.rc2/lib/active_support/dependencies.rb:360:in `require_or_load'
from /Users/sloveless/.gem/ruby/2.1.0/gems/activesupport-4.2.0.rc2/lib/active_support/dependencies.rb:494:in `load_missing_constant'
from /Users/sloveless/.gem/ruby/2.1.0/gems/activesupport-4.2.0.rc2/lib/active_support/dependencies.rb:184:in `const_missing'
from /Users/sloveless/Development/twilight/app/controllers/zone_maps_controller.rb:1:in `<top (required)>'
from /Users/sloveless/.gem/ruby/2.1.0/gems/activesupport-4.2.0.rc2/lib/active_support/dependencies.rb:274:in `require'
from /Users/sloveless/.gem/ruby/2.1.0/gems/activesupport-4.2.0.rc2/lib/active_support/dependencies.rb:274:in `block in require'
from /Users/sloveless/.gem/ruby/2.1.0/gems/activesupport-4.2.0.rc2/lib/active_support/dependencies.rb:240:in `load_dependency'
from /Users/sloveless/.gem/ruby/2.1.0/gems/activesupport-4.2.0.rc2/lib/active_support/dependencies.rb:274:in `require'
from /Users/sloveless/.gem/ruby/2.1.0/gems/activesupport-4.2.0.rc2/lib/active_support/dependencies.rb:360:in `require_or_load'
from /Users/sloveless/.gem/ruby/2.1.0/gems/activesupport-4.2.0.rc2/lib/active_support/dependencies.rb:494:in `load_missing_constant'
from /Users/sloveless/.gem/ruby/2.1.0/gems/activesupport-4.2.0.rc2/lib/active_support/dependencies.rb:184:in `const_missing'
from /Users/sloveless/Development/twilight/spec/controllers/zone_maps_controller_spec.rb:3:in `<top (required)>'
from /Users/sloveless/.gem/ruby/2.1.0/gems/activesupport-4.2.0.rc2/lib/active_support/dependencies.rb:268:in `load'
from /Users/sloveless/.gem/ruby/2.1.0/gems/activesupport-4.2.0.rc2/lib/active_support/dependencies.rb:268:in `block in load'
from /Users/sloveless/.gem/ruby/2.1.0/gems/activesupport-4.2.0.rc2/lib/active_support/dependencies.rb:240:in `load_dependency'
from /Users/sloveless/.gem/ruby/2.1.0/gems/activesupport-4.2.0.rc2/lib/active_support/dependencies.rb:268:in `load'
from /Users/sloveless/.gem/ruby/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/configuration.rb:1105:in `block in load_spec_files'
from /Users/sloveless/.gem/ruby/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/configuration.rb:1105:in `each'
from /Users/sloveless/.gem/ruby/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/configuration.rb:1105:in `load_spec_files'
from /Users/sloveless/.gem/ruby/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/runner.rb:96:in `setup'
from /Users/sloveless/.gem/ruby/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/runner.rb:84:in `run'
from /Users/sloveless/.gem/ruby/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/runner.rb:69:in `run'
from /Users/sloveless/.gem/ruby/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/runner.rb:37:in `invoke'
from /Users/sloveless/.gem/ruby/2.1.0/gems/rspec-core-3.1.7/exe/rspec:4:in `<top (required)>'
from /Users/sloveless/.gem/ruby/2.1.0/gems/activesupport-4.2.0.rc2/lib/active_support/dependencies.rb:268:in `load'
from /Users/sloveless/.gem/ruby/2.1.0/gems/activesupport-4.2.0.rc2/lib/active_support/dependencies.rb:268:in `block in load'
from /Users/sloveless/.gem/ruby/2.1.0/gems/activesupport-4.2.0.rc2/lib/active_support/dependencies.rb:240:in `load_dependency'
from /Users/sloveless/.gem/ruby/2.1.0/gems/activesupport-4.2.0.rc2/lib/active_support/dependencies.rb:268:in `load'
from /Users/sloveless/.gem/ruby/2.1.0/gems/spring-commands-rspec-1.0.3/lib/spring/commands/rspec.rb:18:in `call'
from /Users/sloveless/.rubies/ruby-2.1.0/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Users/sloveless/.rubies/ruby-2.1.0/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from -e:1:in `<main>'

我为什么会得到这个有什么想法吗? ...当然,还有我如何绕过它?

相关文件:

# app/application_controller.rb
class ApplicationController < ActionController::API
include ActionController::MimeResponds
include ActionController::ImplicitRender
include SentientController

respond_to :json

# (Custom responder)
self.responder = HTTPErrors::Responder
before_action :set_locale

private

def set_locale
I18n.locale = http_accept_language.compatible_language_from(I18n.available_locales)
end
end






# Gemfile
source 'https://rubygems.org'

gem 'rails', '4.2.0.rc2'
gem 'rails-api', '~> 0.3.1'

# Other utils
gem 'uuidtools'

# Serializing things
gem 'active_model_serializers', '~> 0.8.2'

# Persisting things
gem 'pg', '~> 0.17.1'
# gem 'activerecord-postgis-adapter', '~> 2.2.1'
# gem 'redis'

# Controller & routing things
gem 'http_accept_language', '~> 2.0.2'
gem 'kaminari'
gem 'rack-cors', require: 'rack/cors'
gem 'responders', '~> 2.0'

group :development do
gem 'brakeman', require: false
gem 'guard-bundler'
gem 'guard-rails'
gem 'guard-rspec'
gem 'guard-rubocop'
gem 'rails_best_practices'
gem 'rubocop', require: false
gem 'quiet_assets'
gem 'web-console', '~> 2.0'
end

group :development, :test do
gem 'bullet'
gem 'byebug'
gem 'factory_girl_rails'
gem 'faker'
gem 'pry-rails'
gem 'pry-rescue'
gem 'pry-stack_explorer'
gem 'rspec-rails'
gem 'puma'
gem 'spring'
gem 'spring-commands-rspec'
end

group :test do
gem 'json_spec'
gem 'shoulda-matchers'
end

group :production do
gem 'newrelic_rpm'
end

编辑:毫不奇怪,当我手动发出请求时会发生这种情况,而不仅仅是在测试期间。

最佳答案

以下使用 rails-api/active_model_serializers 0.8.3 对我有用:

移除

include ActionController::MimeResponds
include ActionController::ImplicitRender

添加

include ActionController::RespondWith

参见 this discussion在github上。

关于ruby-on-rails - 为什么 Rails 4.2 + 响应者不断告诉我将响应者添加到 Gemfile?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27412638/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com