Railsサーバーを0.0.0.0ではなく127.0.0.1にバインドして、コーヒーショップで作業しているときにアクセスできないようにしたいと思います。
このオプションを指定できる構成ファイルがあるので、コマンドラインスイッチを渡す必要はありません。
Rails server -b 127.0.0.1
?
Rails 5を検索する場合: Answer
Rails ~> 4.0
Serverクラスのブートセクションをカスタマイズできます。
/config/boot.rb
この行を追加:
require 'Rails/commands/server'
module Rails
class Server
def default_options
super.merge({Port: 10524, Host: '127.0.0.1'})
end
end
end
この質問ですでに答えたように:
デフォルトでコマンドを実行するだけのbashスクリプトを作成できます。
#!/bin/bash
Rails server -b 127.0.0.1
プロジェクトと同じフォルダに入れて、好きな名前を付けます(例:devserv
)。次に、
chmod +x devserv
そして、あなたがしなければならないすべては./devserv
私は開発中のプロセスマネージャとして Foreman を使用しています。
Gemfileにgem 'foreman'
を追加してbundle install
を実行した後、アプリケーションディレクトリのルートにProcfile
ファイルを作成します。
他のプロセスを管理するために行を追加できますが、私の場合は次のように読みます。
web: Rails server -p $PORT -b 127.0.0.1
次に、Procfileを介してRailsサーバーを起動するには、foreman start
を実行します。ここに他のプロセス(Redis、workers)がある場合、それらは同時に起動します。
config/boot.rb
にデフォルトのオプションを設定すると、rakeおよびRailsのすべてのコマンド属性が失敗します(例:rake -T
またはRails g model user
)!)したがって、これをbin/Rails
のrequire_relative '../config/boot'
行の後に追加すると、コードはRailsサーバーコマンドに対してのみ実行されます。
if ARGV.first == 's' || ARGV.first == 'server'
require 'Rails/commands/server'
module Rails
class Server
def default_options
super.merge(Host: '127.0.0.1', Port: 10524)
end
end
end
end
bin/Rails
ファイルは次のようになります。
#!/usr/bin/env Ruby
APP_PATH = File.expand_path('../../config/application', __FILE__)
require_relative '../config/boot'
# Set default Host and port to Rails server
if ARGV.first == 's' || ARGV.first == 'server'
require 'Rails/commands/server'
module Rails
class Server
def default_options
super.merge(Host: '127.0.0.1', Port: 10524)
end
end
end
end
require 'Rails/commands'