In rails 5 created with --api
I have an error
NoMethodError (undefined method `respond_to' for #<Api::MyController:0x005645c81f0798>
Did you mean? respond_to?):
However, in the documentation for rails 4.2 it says http://edgeguides.rubyonrails.org/4_2_release_notes.html
respond_with and the corresponding class-level respond_to have been moved to the responders gem. Add gem 'responders', '~> 2.0' to your Gemfile to use it:
Instance-level respond_to is unaffected:
And I'm calling the instance method. What's the matter?
class ApplicationController < ActionController::API
end
# ...
class Api::MyController < ApplicationController
def method1
# ...
respond_to do |format|
format.xml { render(xml: "fdsfds") }
format.json { render(json: "fdsfdsfd" ) }
end
ActionController::API
does not include the ActionController::MimeResponds
module. If you want to use respond_to
you need to include MimeResponds
.
class ApplicationController < ActionController::API
include ActionController::MimeResponds
end
class Api::MyController < ApplicationController
def method1
# ...
respond_to do |format|
format.xml { render(xml: "fdsfds") }
format.json { render(json: "fdsfdsfd" ) }
end
end
end
Source: ActionController::API docs