From ebcc15ca4ea22f8ace57a5251ceb8de4b917cd90 Mon Sep 17 00:00:00 2001 From: Jorge Bejar Date: Wed, 27 May 2015 21:10:29 -0300 Subject: Add rake-cors gem (commented) in Gemfile for rails api apps --- railties/lib/rails/generators/rails/app/templates/Gemfile | 3 +++ .../rails/app/templates/config/initializers/cors.rb | 14 ++++++++++++++ railties/test/generators/api_app_generator_test.rb | 3 +++ 3 files changed, 20 insertions(+) create mode 100644 railties/lib/rails/generators/rails/app/templates/config/initializers/cors.rb diff --git a/railties/lib/rails/generators/rails/app/templates/Gemfile b/railties/lib/rails/generators/rails/app/templates/Gemfile index cf811503be..606f1d4f96 100644 --- a/railties/lib/rails/generators/rails/app/templates/Gemfile +++ b/railties/lib/rails/generators/rails/app/templates/Gemfile @@ -25,6 +25,9 @@ source 'https://rubygems.org' # Use ActiveModelSerializers to serialize JSON responses gem 'active_model_serializers', '~> 0.10.0.rc1' +# Use Rack CORS for handling Cross-Origin Resource Sharing (CORS), making cross-origin AJAX possible +# gem 'rack-cors' + <%- end -%> <% if RUBY_ENGINE == 'ruby' -%> group :development, :test do diff --git a/railties/lib/rails/generators/rails/app/templates/config/initializers/cors.rb b/railties/lib/rails/generators/rails/app/templates/config/initializers/cors.rb new file mode 100644 index 0000000000..45c44d24f8 --- /dev/null +++ b/railties/lib/rails/generators/rails/app/templates/config/initializers/cors.rb @@ -0,0 +1,14 @@ +# Avoid CORS issues when API is called from the frontend app +# Handle Cross-Origin Resource Sharing (CORS) in order to accept cross-origin AJAX requests + +# Read more: https://github.com/cyu/rack-cors + +# Rails.application.config.middleware.insert_before 0, "Rack::Cors" do +# allow do +# origins 'example.com' +# +# resource '*', +# headers: :any, +# methods: [:get, :post, :put, :patch, :delete, :options, :head] +# end +# end diff --git a/railties/test/generators/api_app_generator_test.rb b/railties/test/generators/api_app_generator_test.rb index 16c0f1ae82..94d1008aae 100644 --- a/railties/test/generators/api_app_generator_test.rb +++ b/railties/test/generators/api_app_generator_test.rb @@ -45,9 +45,12 @@ class ApiAppGeneratorTest < Rails::Generators::TestCase assert_match(/config.api_only = true/, content) end + assert_file "config/initializers/cors.rb" + assert_file "config/initializers/wrap_parameters.rb" do |content| assert_no_match(/wrap_parameters/, content) end + assert_file "app/controllers/application_controller.rb", /ActionController::API/ end -- cgit v1.2.3