Railsコントローラー内でRailsコマンドラインステートメントを実行する方法
例: このステートメントを実行する必要があります
$rails 新しいテスト -d postgresql
私のレールコントローラから
デフインデックス
/コマンドラインステートメントを実行するコード/
終わり
希望は明確です..
Railsコントローラー内でRailsコマンドラインステートメントを実行する方法
例: このステートメントを実行する必要があります
$rails 新しいテスト -d postgresql
私のレールコントローラから
デフインデックス
/コマンドラインステートメントを実行するコード/
終わり
希望は明確です..
コントローラー内でシェルコマンドを実行したい場合は、「system」を使用してください
例えば:
system "rails new test -d postgresql"
またはそうでなければ
exec "rails new test -d postgresql"
次のように、バッククォートを使用してシェルアウトします:
`rails new test -d postgresql`
これにはジョブ キューを使用する方が賢明かもしれません。
コントローラー内でコマンドラインステートメントを実行するには、system
コマンドを使用できます
system "cd {path_to_folder}; rails new test -d postgresql"
PradeepKumarが言ったように(それについてコメントしますが、担当者のためにできません):
system "cd {path_to_folder}; rails new test -d postgresql"
同じ命令で実行するすべてのコマンドを宣言する必要があります ( で区切られます;
)。私はそうしていませんでした(cd
ランナブルでディレクトリにアクセスするコマンドと、実際の実行行を2つの異なる呼び出しで分離しました)、得られた結果は望ましいものではありませんでした。たとえば、次のコマンドを実行しようとすると:
system "cd {path_to_folder}"
その後:
system "rails new test -d postgresql"
rails コマンドはpath_to_folderのコンテキストでは実行されませんが、コマンド ライン インターフェイス (たとえばC:\Users\Me
) または Rails プログラムの環境の既定の場所で実行されます。
&
また、コマンドの最後にa を追加して修正したコマンド実行時にエラーが発生しました。この場合、命令には 2 つのコマンドが含まれているため、最初のコマンドの最後 ( の前;
) に追加しました。