Ruby on rails 我在哪里应用';访问控制允许原点';rails应用程序中的标头

Ruby on rails 我在哪里应用';访问控制允许原点';rails应用程序中的标头,ruby-on-rails,ember.js,http-headers,cors,access-control,Ruby On Rails,Ember.js,Http Headers,Cors,Access Control,我正在尝试使用ember.js作为客户端,通过rails应用程序中的omniauth链接到第三方身份验证页面。我可以将服务器重定向到正确的url,但无法将客户端发送到该url(导致服务器在请求阶段无限期挂起)。我的问题是,我需要在我的应用程序中的某个地方设置访问控制允许来源头,但我不确定在哪里。我目前在我的应用程序\u controller.rb中有此(非工作)设置: class ApplicationController < ActionController::API # Force

我正在尝试使用ember.js作为客户端,通过rails应用程序中的omniauth链接到第三方身份验证页面。我可以将服务器重定向到正确的url,但无法将客户端发送到该url(导致服务器在请求阶段无限期挂起)。我的问题是,我需要在我的应用程序中的某个地方设置
访问控制允许来源
头,但我不确定在哪里。我目前在我的
应用程序\u controller.rb中有此(非工作)设置:

class ApplicationController < ActionController::API
  # Force to wants JSON for API
  before_action :api_request_settings, :cors_preflight_check

  after_action :cors_set_access_control_headers

  def cors_preflight_check
    p 'hits cors preflight check'
    if request.method == :options
      headers['Access-Control-Allow-Origin'] = '*'
      headers['Access-Control-Allow-Methods'] = 'POST, GET, OPTIONS'
      headers['Access-Control-Allow-Headers'] = '*'
      headers['Access-Control-Request-Method'] = '*'
      headers['Access-Control-Max-Age'] = '1728000'
      render :text => '', :content_type => 'text/plain'
    end
  end

  def api_request_settings
    p request.headers
    request.format = :json
  end

  def cors_set_access_control_headers
    p 'hits cors acces set control headers'
    headers['Access-Control-Allow-Origin'] = '*'
    headers['Access-Control-Allow-Methods'] = 'POST, GET, OPTIONS'
    headers['Access-Control-Allow-Headers'] = '*'
    headers['Access-Control-Request-Method'] = '*'
    headers['Access-Control-Max-Age'] = "1728000"
  end
class ApplicationController'',:content\u type=>'text/plain'
结束
结束
def api_请求_设置
p请求头
request.format=:json
结束
def cors_设置_访问_控制_标题
“点击cors访问集控制标题”
标题['Access-Control-Allow-Origin']='*'
标题['Access-Control-Allow-Methods']='POST、GET、OPTIONS'
标题['Access-Control-Allow-headers']='*'
标题['Access-Control-Request-Method']='*'
标题['Access-Control-Max-Age']=“1728000”
结束

我做错了什么?我应该将这些标题放在哪里才能将我的客户发送到登录页?

我们正在使用一个GEM,它在机架中处理:

我正在使用这个GEM的可能副本。实际上,我认为问题出在客户端,因为我试图将第三方API的来源重定向到外部授权url。我的问题的现状是什么