2008年1月アーカイブ
今回は、アプリを作ってみるよ!
前回、めんどくさそうなので、と言ったのは、masuidrive on rails » Blog Archive » PHPユーザの為のRuby/Rails入門 の「Railsチュートリアル」に従って試してみたけどエラーが出て動かなかった><
Todoアプリをチュートリアルどおりに動かしたんです。MySQLもしっかり設定した。
scaffoldやってみると、「wrong number of arguments (1 for 2)」と出て、引数の数がおかしいとか。
実際に動かしてみると、
Routing Error
No route matches "/todo/" with {:method=>:get}
むう。
無知な僕は、色々調べて、ルーティングがおかしそうだなと思い、試してみた。
ルーティングというのは、mod_rewriteみたいな、URLの書き換え機能だそうで、config/routes.rbで定義されてます。色々いじって、別のサイトに載ってるサンプルで試してルーティングの変え方とかわかったんだけど、Todoは動かなかった。
またもや色々調べて、やっと分かった。Railsのバージョンが違うからですな。
最新版のRails2.0.2ではデフォルトのDBがMySQLからSQLite3へ変わっていた。こいつが原因だ!
http://journal.mycom.co.jp/news/2007/12/18/025/index.html
こっからはうまくいった方法。
まず、前回作ったtestアプリケーションは(rails test)一旦忘れて、todoプロジェクトを作成。
その際に、DBをMySQLを指定します。以下のコマンドをコマンドプロンプトで。
>cd c:\RoR_project
>rails -d mysql todo
create
create app/controllers
create app/helpers
create app/models
(中略)
create log/server.log
create log/production.log
create log/development.log
create log/test.log
アプリケーションが作成されて、ディレクトリがいっぱいできます。
次は、データベースの設定です。config/database.ymlを設定します。
中身はこんな感じ。(コメント除く)
development:
adapter: mysql
encoding: utf8
database: todo_development
username: root
password:
host: localhost
test:
adapter: mysql
encoding: utf8
database: todo_test
username: root
password:
host: localhost
production:
adapter: mysql
encoding: utf8
database: todo_production
username: root
password:
host: localhost
Railsでは開発環境・テスト環境・本番環境がそれぞれ用意されているらしい。上のdevelopment、test、productionですね。詳しいことはまだ勉強が必要だけどものすごい便利そう!すごいよ仕事でも使おうよ!って思った。
ここは、passwordを設定してる場合は書いておけばok。インストールしたばかりなら編集なしでok。ほんとはrootは危ない。
次はrakeコマンド。データベースを自動で構築してくれます。
>cd todo
>rake db:create:all
(in C:/RoR_project/todo)
phpMyAdmin(http://localhost/mysql/)でmySQLを確認すると、todo_development、todo_production、todo_testができてるはず。
最後に一気にTODOを構築するコマンドです。
>ruby script/generate scaffold Todo title:string body:text done:boolean due:datetime
exists app/models/
exists app/controllers/
exists app/helpers/
create app/views/todos
exists app/views/layouts/
exists test/functional/
exists test/unit/
create app/views/todos/index.html.erb
create app/views/todos/show.html.erb
create app/views/todos/new.html.erb
create app/views/todos/edit.html.erb
create app/views/layouts/todos.html.erb
create public/stylesheets/scaffold.css
dependency model
exists app/models/
exists test/unit/
exists test/fixtures/
create app/models/todo.rb
create test/unit/todo_test.rb
create test/fixtures/todos.yml
create db/migrate
create db/migrate/001_create_todos.rb
create app/controllers/todos_controller.rb
create test/functional/todos_controller_test.rb
create app/helpers/todos_helper.rb
route map.resources :todos
scaffoldというのがCRUD(Create - 生成、Read - 表示、Update - 更新、Destroy - 削除)を自動生成してくれます。今回はTodoというモデルを自動で構築してくれました。ここでマイグレーションファイル(db/migrate/001_create_todos.rb)も生成されるので、こいつをDBにmigrateすると、テーブルとレコードができあがります。
>rake db:migrate
(in C:/RoR_project/todo)
== 1 CreateTodos: migrating ===================================================
-- create_table(:todos)
-> 0.0620s
== 1 CreateTodos: migrated (0.0620s) ==========================================
最後にWEBサーバを起動して、アプリケーションを実行してみます。
>ruby script/server
=> Booting WEBrick...
=> Rails application started on http://0.0.0.0:3000
=> Ctrl-C to shutdown server; call with --help for options
[2008-01-22 01:49:31] INFO WEBrick 1.3.1
[2008-01-22 01:49:31] INFO ruby 1.8.6 (2007-09-24) [i386-mswin32]
[2008-01-22 01:49:31] INFO WEBrick::HTTPServer#start: pid=4628 port=3000
http://localhost:3000/todos/にアクセスしてみると、TODOができてます!
レコードの生成、表示、更新、削除がちゃんとできた!
ちょっとつまづいたけど、簡単にアプリができちゃった。動かない原因調べるのに2時間かかったけど><
Railsの初歩の初歩と仕組みの大枠が理解できたので、今度は本を買ってこつこつやってみるよ。
とりあえずこれ買った。
基礎Ruby on Rails (IMPRESS KISO SERIES)
黒田 努 佐藤 和人
インプレスジャパン 2007-10
売り上げランキング : 6837
おすすめ平均
1ヶ月くらいでなんか公開できるものを作りたいなあ。
初心にかえって、プログラミングを勉強してみることにしたよ。
最近すごく気になってたRuby on Railsを始めてみます。
とりあえず、はてぶでRuby on Railsタグの人気エントリを探して、勉強するサイトの見当をつける。
見つけたのはここ。
masuidrive on rails » Blog Archive » PHPユーザの為のRuby/Rails入門
PHPは仕事でも触ったことあるので、得意っちゃ得意ということで、高橋メソッドなRubyの資料を読んでお勉強。高橋メソッドってやっぱいいね。モチベーションを下げさせない力があるよ。
Rubyの第一印象。
・全部オブジェクトとか超嬉しい><
・痒いところに手が届いてて嬉しい。最新の言語の利点ってそういうもんなのかな。
・自由度高くて、VBぽくね?綺麗で安全なコードを書くための自分ルールを作るために色々調べないといかんかも。
・オープンクラスとかすげー。でもできること多すぎてふわふわ感。
・イテレータとか、ちょっと新しい書き方の癖つけないといけないな。
・これ使ってから仕事でCとか書きたくなくなっちゃったり(´・ω・`)
Ruby編を読み終え、次は実際にインストールとか必要ぽいので、できそうなところを探してみます。
環境はWindowsですよ。今度はここを参照しました。
Ruby on Rails/インストール for windows
まずは、このPC買ったばかりでMySQLが必要なので、面倒なのでXAMPPで一気に色々インストールしちゃいます。
http://www.apachefriends.org/jp/xampp-windows.html
僕が入れたのは、xampp-win32-1.6.5-installer.exeです。
簡単だね。ApacheもMySQLもインストールできた。PHPならこれで始められるよ。
RubyはOne Click Installerというので、一発で入っちゃうみたいなのでそこからインストールしますよ。
http://rubyforge.org/projects/rubyinstaller/
僕が入れたのは、ruby186-26.exeです。
インストールしたら、Railsをインストール。
コマンドラインで以下を実行とのことです。
gem install rails -y
んーできた。次はC:\RoR_projectというフォルダを作って以下を実行。
cd c:\RoR_project
rails test
ruby test/script/server
で、http://localhost:3000/にアクセス。これで初期画面が見られるみたい。
んー、インストールはなんて簡単なんだろう。
アプリ動かすのは説明が若干ややこしそうなのでもうちょい試してから次回書くよ!
はてぶで一番上に来てたので読んでみた。
「現状を変える一発逆転」はいたるところにある。 多くの人は、勇気がなかったり、ぼんやりと生きていたりするために、 一発逆転のチャンスが目の前を通り過ぎるのを 見過ごしてしまっているだけだ。 「近道を探す努力」こそが正しい努力
逆に「「地道な努力」教の信者たち」は非効率な努力を続けて、
会社も、従業員も、顧客も、だれもが不幸になっていく。
うんうん、そのとおり!と思って読んでたんだが、まるっきり同じことを今日どこかで見たなと思ったら、今読んでる本に書いてあったことだったので、自分のために思慮浅いけどメモ。
ユダヤ人大富豪の教え 幸せな金持ちになる17の秘訣 (だいわ文庫) 本田 健 |
以下、本書のある章から、引用。
不自由人の人生には「やらなければならないこと」だらけ
「実際、以前私のところに相談にきた中に、おもしろい奴がいたな。君に話したように『幸せになったり、金持ちになるにためには、時間をかけて自分を見つめる必要がある』と言ったんだ。そうすると、彼は何て言ったと思う?『そんなこと考える時間がありません!』と悲鳴のような声を出していた。それこそがまさしく問題なのだよ。」
不自由人は自分で自らを不自由にしている。
今週は年始ということもあって、怒涛のように仕事をした。朝は通勤電車内でノートPCをたたき、一番早く出社し、一番遅くまで会社にいて、帰ってきて酒を飲みながら3時まで仕事。さすがに疲れた。
やっと1週間を振り返る余裕がここ2時間くらいでできたんだけど、どうにも高い成果が出せてなかったなあと思ってた。
「不自由人は、とにかく、やらなければならないスケジュールで手帳がいっぱいだ。」
「不自由人は、能率を上げれば成功できると思っているので、手帳をもち歩く。そして毎週同じようなスケジュールをこなすのに、アップアップアップするのだ。
「その代わり、彼ら(自由人)は何を持っているんだと思う?」
「彼らは、スケジュール手帳の代わりにアイデア手帳を持っている。」
「自由人は、クリエイティブなアイデアが成功を約束してくれると知っている。」
そう、まさに不自由人の生活をしていたんですね。「努力」だけで、仕事に対する「アイデア(工夫)」がまったくなかったなとシャワーを浴びながら自分で思った。
どんなに仕事が忙しくても、その忙しさにかまけて頭を使うことを忘れたら、価値のある成果は出せないのですね。
もっと大きい視点で言えば、仕事の枠を取っ払ってクリエイティブなことをしないと、成功には繋がらないんじゃないのかな。
自分の周りを見てても、仕事を「こなす」ことで精一杯でその中に「工夫」を取り入れられてない人がいっぱいいます。会社も自分も成長するためには、そこで如何に効率のよい努力をできるようになるかだと思うんですね。
そのことが一番大事だなと思ったのでエントリを書いてます。これからは「工夫」を第一優先にしますよ!頭がフル回転できる状況をどんなに忙しくても意識してつくるのです。
元のエントリの引用に戻りますが、
しかしながら、広く一般に世論調査をすると、たいていの場合、
「実績を上げた人が報われる社会」
よりも、
「努力した人が報われる社会」
を望む声が多いという。
日本の強みでもある努力が弱みでもあることに初めて気づかされた。努力にDependしてるんだな日本。
これからは、必要に迫られて、努力よりも頭を使って「工夫」していけることを美徳とする社会に自然となっていくんじゃないかな。じゃないと日本終了しちゃうよ><
もっと「頭を使って」、正しい「努力」をすること事が一番大事。これが今日のまとめ。
PS:それにしてもこのブログは見づらい!3連休中に最大限の工夫をしてレイアウト直すよ!
皆様、あけましておめでとうございます!
今年の抱負をまとめてみますね。
■自分に厳しく「人にやさしく」
去年の目標「めんどくさいに負けない」は思いのほか達成できた!
ということで、今年は自分に厳しくても人にやさしくすることを目標としたい!
自分に厳しく、自分で決めた目標を自分で達成しようとしているとき、得てして人に対しては自分に求めていることを人に求めてしようとしまうものです。
僕はずっとそうだったと思うし、去年はそこに少なからず悩めたわけです。
今年は本気出してその目標を達成していきたい。人に求めるのではなく、大きな心で人に接していく、これを続けて生きたいと思います。
まじこれ超むずい!一生の目標かもしれないけどね><
■WEBに名を残す
2007年に達成できなかった!
今年は個人でがんがる。個人レベルでしっかりWEBサービスを作る。
まずは、「お酒生活(仮)」を作るよ。今日も酔ってるけどまずは自分のためにお酒を振り返られるサービス作りだ!
一日一日の積み重ねが超重要。
あとはそれを広められる人間関係。知らないところに飛び込むよ。
毎日がんがる。
■「行動力」を最優先する
理論を組み立てることはできて、それを口に出すことはできても、それを行動に移さなきゃ意味がない。
今年は行動力を常に最優先する。
「今すぐやる」ことを目標にしますよ!「すぐやる国の大統領」に就任する!
後でやるは悪!今日できることは今日やる!
多分絶対的には達成できないだろうけど、常に心がけれるようにここに書く!!
■習慣をつくる
何かを学ぼうとするときに一番大事なことは習慣ですよ。
僕は今年は、英語を学ぶ習慣をつけようと思います。
毎日最低○○時間やる!とか。まだ決めてないけど、とりあえず英語の単語覚えたい。
ほかの目標にかかわってくるけど、とにかく「毎日やる」ことを目標とする。
■初心に戻って基礎固め
近年色々と甘く見ていたプログラミングに本気出したい。
マネジメントも大事だけど、やっぱり基礎が大事だということに、すごい人たちに会って思ったのが去年の大きな刺激だった。
今年は、自分なりに能力を高めて、専門能力を身に着けたい。
正規表現が良く分からないとか、ちょwwww駄目すぎwwwwなので、まずはその辺から。
あと英語。基礎が超大事。上にも書いたけど鍛錬する。
上っ面は仕事で吸収、個人では基礎に集中、これが今年の目標。
■自律、酒に負けない、運動しよう
酒は飲んでものまのまいぇい。
こいつをなんとかしますよ。飲んでも飲まれない、むしろWii fitしまくり。
休日はテニス?あれ、nyontan健康的じゃね?
こんな日々を送りたい!これ一番難しい目標だよ><
以上、今年の目標。仕事とかやって当たり前は後回し。こいつらできたら来年の大晦日は楽しく飲めるね!!!