Rails 6.0、Rubyは2.6.5を使っています。
複数ドメインで一つのアプリを運用するため、
ruby
1 if Rails.env.development? 2 # ここにどう書くか 3 else 4 constraints host: "main.com" do 5 root 'home#index' 6 end 7 constraints host: "sub.com" do 8 scope module: :sub do 9 root 'home#index', as: 'sub_root' 10 end 11 end 12 end
のような形で指定して運用したいと思っています。
上記からわかると思いますが、説明をさせていただくと、
各ドメインでのURLパスに対応するコントローラが変わります。
sub.com
というドメインで利用するcontrollerはapp/controllers/sub/
の内部にあります。
as:
オプションはviewテンプレート内のURLヘルパーメソッドを両方のドメインで重複しないように設定しています。
クライアント側インターフェースから見るとドメインごとに別の役割を持ったアプリでありつつ、モデル等は共有します。
コントローラは共有しなくても良いです。
例えばhttps://main.com/
にアクセスすると、app/controllers/home_controller.rb
のindex
アクションに、https://sub.com/
にアクセスすると、app/controllers/sub/home_controller.rb
のindex
アクションにルーティングしたいです。それ自体は上記の設定でできていると思っております。
それを開発環境でどのように振り分けるかというところで、例えばポート番号などでconstraintsを指定できれば良いと思いましたがそのような指定方法は見つかりませんでした。
ですので、開発環境で、上記の各ドメインでの環境を実現したい場合にどのような方法があるか教えていただきたいです。できればURLパスは本番環境と同じように扱いたいので、サーバ起動時の設定等で振り分けるイメージをしております。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。