オライリーの「Head First Rails」をrails4で書く 第二章
「今日が命日でもいい!! サムスミスのLIVEに行ってきたZE☆。」
本来ならこいういエントリーを書くつもりだったんだろうな。
今日はサムスミスの単独公演のはずだったんだけど、サムスミスの喉から血が出てるようでドクターストップにより中止になった。オークションで買ったチケ代は、本来のチケ代分しか返ってこず、ただただお金をドブに捨てる羽目になり、せっかく取った有給休暇は近所のハンバーガー屋で消えてなくなった。天気がよかったのがせめてもの救いだ。
いい機会なので今勉強してるrailsの記事を書くことにする。
第2章ではscaffoldでは機能が多すぎるので、簡素化したものを作ってみようって感じ。
最初はモデルを作るのがいいらしく、本では
ruby script/generate model ad ......
ってなってるけど、これじゃダメなので
rails generate model ad .....
あとモデル名は単数系でお願いします。
引き続きrake db:migrate
でテーブルを作成して、モデルと同じ要領で
rails generate controller ads
で、コントローラーを作成。コントローラーは複数形で!
で、show.html.erbを作成したからルーティングを書く。ルーティングの書き方が結構変わってて 今では
get "ads/:id" => "ads#show"
でページが表示されると思うんだよね。 でも表示するデータがないと思うんだ。そんな時はここから"development.sqlite"3をダウンロードしてくれ。しかしエラーが出るからその時ここを参照してくれ! http://uwazumi.honeniq.net/entry/2014/01/12/215416 っていうか、同じことやってる人がいたらここのブログを見たほうがずっといい。 綺麗だしまとまってるし。
http://www.headfirstlabs.com/books/hfrails/
で、index.html.erbを作成したらルーティング
get 'ads' => 'ads#index'
で、コントローラーに
def index @ad = Ad.all end
したらこの章は終了だ!
オライリーの「Head First Rails」をrails4で書く 第一章
「私は怠惰な人間だ。」
なんとなくこんな台詞から始めると小説っぽくなるかなと思って言ってみた。
なんでバージョン違いの本を今更読んでるのかというと。 現行バージョンの参考書を写した場合、もちろんだけど問題なく動く。 なんの問題もないから何も頭に残らない。 私は不器用だから、間違いなく動かないものを作って、 強制的に調べないと動かせないこの勉強法が気に入っている。
その勉強の記録としてこのブログに残すことにする。
まず初めにアプリケーションを作成する
本ではrails ticketsとなっているが
rails new tickets
こうなる。
cd tickets
で、中に入ってscafolldで作成する
rails g scaffold tickets name:string seat_id_seq:string address:text price_paid:decimal email_address:string
で、サーバーを立ち上げる
rails s
エラーが出るので
rake db:migrate
をすると治ってるはず。
するとデータベースにカラムを追加してくれって指示があるから
rails g migration AddPhoneToTicket phone:string
って打って、また
rake db:migrate
をすれば大丈夫!
ではお達者で!
railsのMVCを自分なりに分かりやすく解説してみた
railsの本にやたらとMVCという言葉が出てくる。
ちょっと理解が甘いと思ったので自分の中で置き換えて
再度、頭に叩き込もうと思います。
まず、MVCがなんの略かということ
M = モデル
V = ビュー
C = コントローラー
この時点でノンプログラマーな僕には一切わからないので、
イメージしやすい物に置き換えていこうと思います。
まずはモデル。
モデルと言ったらやっぱり女性。
かわいい方が頭に入る。
なので「トリンドル玲奈」にしようと思う。
菜々緒にしようと思ったが
ここは名前的にインパクトがあるトリンドル玲奈にした。
ダレノガレじゃ駄目なんですかって、いう人もいるかもしれないが
そんな野暮な質問はやめて欲しい。俺が低脳でロリコンだということを察して欲しい。
次はビュー
Vのビューだ。Vの頭文字をとってきて「VAITAI」。
そう媒体だ。要はモデルが露出する場所だ。
テレビだったり、雑誌、CM、広告、を指す。
今回はテレビとしよう。
そして最後にコントローラー
トリンドル玲奈をコントロールする事務所だ。
つまり自殺した上原美優が所属していた「プラチナムプロダクション」だ。
もちろん関東連合とも関わりの深い事務所だ。
話を大きく脱線したいとこは山々だが今日は我慢することにする。
まとめると
この三つのキーワードで話をつなげると分かりやすい。
テレビの製作者(ビュー)が、ある企画で「トリンドル玲奈」(モデル)が必要だと「プラチナムプロダクション」(コントローラー)に相談する。すると、
モデルがたくさんはいってるデータベースから「トリンドル玲奈」をひっぱってきてくれる。
これだいぶわかりやすくなった。
だから、モデルはたくさんいるから複数形と覚えておけば
もう間違いなしだ!
rake db:migrateのエラーその1
仕事が終わり、渋谷のジョナサンで勉強していた。
隣の学生らしき若者の世間話を横耳にしながら、若いなー自分もこんな時代があったなーと、
若者に過去の自分の面影を重ねながら「頑張れよ若人達よ」と心の中でエールを送りつつ
rake db:migrate と打つ
・
・
・
== 20150215124929 AddIndexToUsersEmail: migrating =============================
-
- add_index(:users, :email, {:unique=>true})
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:
・
・
・
エラーや。あかん、エラーがでとる。
渋谷のファミレスでたむろするクソみたいな若者のつまらない世間話に耳を傾けていたせいだ!
怒りの矛先を、自分の面影を重ねた若者たちに向けつつgoogle先生にすがりつく。
ついに答えらしきものを発見。
rake db:drop rake db:create rake db:migrate
と打ったら治った。
原因を探ろうとしたが、若者たちの雑談以外に答えが見つからず
唾を吐き捨てるようにジョナサンを出て、渋谷のセンター街の人ごみの中に帰った今日の夜。
プログラミングの勉強方法を変えてみる
今ruby on rails チュートリアルを勉強して2周目の第8章なのだが
勉強方法が間違ってることに気づいた。
2周して一周目の記憶がほとんど残ってない。
もちろん個人差があるだろうが、全くと言っていいほど意味がない。
基礎ができていないとか以前に、学習の基礎である「復讐」をする前に忘れてしまっているっていうことが大問題だ。
git をうまく使って、一周するんじゃなくて章ごとに反復していこう。
一周目用のブランチを作って、章が終わったらgit stashして
git revertで戻って
git clean -fできれいにして
再度2週目のブランチを作って
反復練習だ。
もっと上手なgitの使い方があるんだと思う。
bootstrapでリストを横並びにする方法
Ruby on Rails チュートリアル
http://railstutorial.jp/
ってサイトを参考に勉強してるんだけど
バージョンか何かでサンプル通りに動かないことがある。
第5章でbootstrapを導入するんだけどヘッダーのメニューが横並びになってくれないおかげで
テンションが下がる部分がある。
以下サンプル
<ul class="nav pull-right"> <li><%= link_to "Home", '#' %></li> <li><%= link_to "Help", '#' %></li> <li><%= link_to "Sign in", '#' %></li> </ul>
これじゃ動かないからnav-pillsを追加する
<ul class="nav pull-right nav-pills"> <li><%= link_to "Home", '#' %></li> <li><%= link_to "Help", '#' %></li> <li><%= link_to "Sign in", '#' %></li> </ul>
もうこれで大丈夫なはず。
これであなたの未来は開かれた。
また不幸な人間を救ってしまった・・・
Homebrewをインストールするときのエラーまとめ
まじで3時間ぐらいかかった・・・
パソコン初心者なので間違ってたらすみません。
まず気をつける点としては
・xcode Command Line Toolsがインストールされてること
・macPorts がインストールされていないこと
たぶん俺がはまったのはこれが原因だと思われる
アンインストール方法 http://macperson.net/macports-uninstall/
てかもうブログ自体書くのしんどいからお世話になったリンク以下に貼っときます。
http://shoya.io/blog/brew_doctor/
お世話度:★★★★★★★★
http://d.hatena.ne.jp/z3100/20110501/1304248529
お世話度:★★★★★
http://chick307.hatenablog.com/entry/20120531/1338471979
お世話度:★★★★★★★
大事なことはbrew upgradeとbrew updateにはsudoをつけろってことだ。
壊れても俺はしらない。だが俺はこれで治った。
はぁ死ぬほど疲れた。
$ brew doctor
>> Your system is ready to brew.
が出たときは嬉しかったな。故郷の母親にも見せてやりたかったなぁ。
もうすぐ全豪オープンが始まる。錦織がんばれーーー