Rails3:シェルスクリプトを使ってRailsコマンド(「rails generate」など)を実行する方法

私は、Linuxのシェルスクリプトを実行することによって、モデルを生成することができなければなりません。

スクリプトはappフォルダに直接配置され、次のようになります。

#!/bin/bash

cd /home//Websites/
rails g model my_model name:string accepted:boolean [etc...]

問題は次のとおりです。スクリプトを実行すると、モデルが作成されません。なぜどんなアイデア?

1
何が起こるか
追加された 著者 Dave Newton,
@ TomDoggあなたはrvmなどを使っていますか?既に正しいrvm/gemsetを使用しているシェルから実行しているときは、うまく動作しません。動作してはいけない理由はありません。
追加された 著者 Dave Newton,
@トムドッグ完了;あなたがうまく働いてうれしい。しかし、cmd行の引数を必要としない限り、何が良いですか?
追加された 著者 Dave Newton,
Railsジェネレータを使用していない理由は何ですか?
追加された 著者 coreyward,
@coreyward:提案してくれてありがとう、私は間違いなくそれをチェックする(しかし、私の問題についてはまだ興味がある...)。
追加された 著者 TomDogg,
@Dave Newton:何も起こりません。コンソールは、最初のコマンドが正常に実行されたかのように、別のコマンドの準備ができています...
追加された 著者 TomDogg,
@デイヴ・ニュートン:ありがとう、デイブ!私は#!/ bin/bashがすべての.shスクリプトに対して必須であると思っていました...また、.shファイルがすでにアプリケーションのルートフォルダに入っているので、 "cd"は不要です。いいえ、私はRVMなどを使用していません。あなたがカルマを望むならあなたの答えを追加することを忘れないでください;-)
追加された 著者 TomDogg,

2 答え

試す

exec "rails g model my_model name:string accepted:boolean"
1
追加された
ありがたいですが、残念ながら、これは何も変わりません...
追加された 著者 TomDogg,

シェルが同じコンテキストで実行されていることを確認するには、シバンを削除して、現在のシェルと同じでも異なってもよい別の bash を起動しないようにします。

もしあなたがrvm /同様のものを使っているなら、(a)デフォルトを持っている、(b)バージョン/ gemsetを指定している、(c)rvmのような cd

さもなければ、うまくいくはずです - それは私のためです(シバンを使っているので、現在のrvm環境を使用します)。

0
追加された