Rails再びつまずく、scriptの中身ないじゃん
教科書どおり、さっそく前回のアプリにフィールドをつくってやるべし。とscaffold を実行します。しかしあえなく失敗。しかもエラーメッセージに唖然。あきらかに、そんなスクリプトないぜって言ってます。
ruby: No such file or directory — script/generate (LoadError)
おーぃ・・・・
前回の投稿でここまでの顛末を書いてありますので、参考にしてください。
もうその本の通りに移します。
>ruby script/generate scaffold ticket name:string seat_id_seq:string adress:text price_paid:decimal email_adress:string
実行すると出てきたのは
ruby: No such file or directory — script/generate (LoadError)
そんなものしらねぇって事ですね。分かりましたよ。なんか根本的に間違ってる気がします。
Rubyを学んだ方はご存知でしょうが、スクリプト言語なので、
ruby プログラム名.rb
というようにして実行するのはわかります。Railsが自動で生成したフォルダのscriptの中にあるRubyのスクリプト、generateを実行し、その引数がscaffoldやアプリ名であるticketとそれに続くフィールド名と型です。
では、肝心のscriptフォルダの中はどうなっているのか?覗いてみると
なにもない・・・いや、railsってのがひとつだけ???
生成されるときにおかしかったのか?はたまた何かが根本的に間違っているのか。
そういえば、rails tickets のコマンドも弾かれてしまいました。rails new ticketsとすると実行できました。これは・・・
バージョンが上がって使い方も変わった・・・?
初心者に優しくないですよね。戸惑いますよ。
というわけで、前述の
>ruby script/generate scaffold ticket name:string seat_id_seq:string adress:text price_paid:decimal email_adress:string
は下記のように変わります。
>rails g scaffold ticket name:string seat_id_seq:string adress:text price_paid:decimal email_adress:string
これまではRubyでスクリプトを実行していたところが、Railsが直接scaffoldを実行するようになったようです。だから、scriptフォルダの指定がなくなりました。「g」はgenerateの名残でしょうか。ちょっと戸惑います。
この実行は予めアプリケーションのフォルダに移動してから実行します。
実行してみた結果はこちら
成功!!
やっと次にすすめそうです。
ディスカッション
ピンバック & トラックバック一覧
[…] これでようやく先に進めそうです。 […]