gpt4 book ai didi

ruby-on-rails-4 - Rails 域约束(为多个域提供服务)

转载 作者:行者123 更新时间:2023-12-04 07:15:41 25 4
gpt4 key购买 nike

$ rails -v Rails 4.2.1

$ ruby -v ruby 2.2.2p95 (2015-04-13 revision > 50295) [x86_64-linux]



我正在为一个移动应用程序构建一个 API,它将有一个管理界面。我正在尝试做的是使用 unicorn 通过 nginx 运行它(我在我的开发环境中运行)

我有 2 个域路由到完全相同的 rails 项目。这些域是: api.project.devadmin.api.project.dev
我读过这个:
http://guides.rubyonrails.org/routing.html#advanced-constraints

并尝试:
Separate Domain for Namespaced Routes in Rails 4 (见答案)

我尝试了其他一些方法来尝试使其正常工作,唯一出现的问题(对于任一子域)是:
Invalid route name, already in use: 'root'
我目前的实现是:
class DomainConstraint
def initialize(domain)
@domains = domain
end

def matches?(request)
@domains.include? request.domain
end
end


require 'domain_constraint'
Rails.application.routes.draw do
resources :statuses
constraints (DomainConstraint.new('api.project.dev')) do
root :to => 'statuses#index'
end

constraints(DomainConstraint.new('admin.api.project.dev')) do
root :to => 'statuses#new'
end
end

请记住,根现在只是不同的页面,但最终将是完全不同的系统。

不太确定从这里去哪里才能像我希望的那样运行。

最佳答案

#RubyOnRails伟大人士的帮助下在 irc我明白了这一点。非常感谢 crankhardersevenseacat为您提供意见和建议。

我最终得到的是这样的:

class DomainConstraint
def initialize(domain)
@domains = domain
end

def matches?(request)
@domains.include? request.host
end
end

和:
require 'domain_constraint'
Rails.application.routes.draw do

constraints DomainConstraint.new('api.project.dev') do
resources :statuses
root :to => 'statuses#index', as: 'api_root'
end

constraints DomainConstraint.new('admin.api.project.dev') do
resources :statuses
root :to => 'statuses#new'
end
end

关于ruby-on-rails-4 - Rails 域约束(为多个域提供服务),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29933443/

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