rails(5)
タスク
- railsの基礎
内容
本日もまた詰まった日でした。。。
herokuにデプロイを試してみたのですが、やっぱりうまく行かない。
無くても先に進めると思った矢先でした。
事件が起きました。
テーブルがありません、と怒られました。
あれ?どこ行っちゃったんだろうと、sql light detabase browserでデータベースを見てみるときちんとデータは入っていました。
rake db:migrate
してみても、怒られます。
何なんだろうと色々調べてみると
rake db:prepare
をするとやっとこさデータベースを認識してくれるようになりました。
migrateでデータベースをrailsで使えるように整えてくれるみたいですが、
prepareって何だろう?
直訳では準備ですがschemaを読み込んでくれるらしい。
つまり、データベースはあるのにrailsに見えてない状態だったて事なのかな?
感想
最近詰まってばかりでどうにも。
でも、逆に考えれば一歩ずつ進んでるってことで。
うーん、エウレカする日が待ち遠しい。
rails(4)
タスク
- railsの基礎
内容
二日前にrailsでこんがらがってしまったので、一度最初からやり直しました。
先週は一週間かけてなんとか7章間でだったのですが、二回目だったので二日で7章までたどり着く事が出来ました。
その中で二点勉強になった事があります。
- 開発段階ではデータベースもgit管理下に置くべき
- 環境の確認をきちんとすべき
データベースは頻繁に更新されるのでgit管理下に置くべきではないとされています。
しかし、開発段階ではデータベースにテストユーザ情報を置いて開発していくので、手戻りがあった場合は簡単にデータベースも元に戻せる方が便利です。
環境の確認は大事です。
チュートリアルではrails3を使っていたのですが、最初からやり直す際にrailsのバージョンを確認すると4でした。
これもこんがらがってしまった原因だと思います。
また、rails4をアンインストールするときに
gem uninstall rails 4.0.0
とコマンドを入力したのですがアンインストールできませんでした。
調べてみるとrailsのアンインストールには
gem uninstall railties -v '4.0.0'
とすべきだそうです。
直感に反していますが、勉強になりました。
感想
二日間の手戻りは結構大きかったです。
何かを作ったりするときは下準備が大事だという教訓にします。
rails(3)
タスク
- railsの基礎
内容
railstutorialの7章をやって行っていました。
ですが。。。詰まりました。
tutorialではテストコードを書いてから、その後実装をして行くのですが新しいテストを追加すると今まで書いたテストがパスされなくなるという自体に。
なんとか回復しようと、gitでバージョンを戻してそこから組み立て直そうとしましたがうまく行かず。。。
前の章からやってみたりしたのですが、うまくやれません。
そんな感じで一日がつぶれてしまいました。
最初から組み立て直した方が良さそうなので、明日は5章あたりからやり直そうと思います。
感想
泥沼にはまった感じでどうも良くない一日でした。
gitでバージョン管理していたのに回復できないという。。。
恐らくですがデータベースいじちゃったかな??
データベースはバージョン管理に入れないようにしていた気がします。
テスト段階ではデータベースもgitの管理下に入れるべきだと思いました。
rails(2)
タスク
- railsの基礎
内容
学習プログラムサイトの作成と日曜にやるハッカソンに必要になるので引き続きrailsの基礎をやって行きました。
参考は
Ruby on Rails チュートリアル:実例を使って Rails を学ぼう
です。
まず第四章でrubyの基礎を対話型の"ruby console"を用いておさらいして行きました。
ここにきて、pの正体が明らかになりました。
p = puts + inspectメソッド
つまりpはオブジェクトを出力するという事でした。
今までpとputsの違いって何だろうと思っていましたが、はっきりしてよかったです。
また、do と end ってなんだかなと思っていましたが、これは { と } で置き換える事が出来ます。
これをブロックというそうです。c++とかでは{ }
を使うのでそれと同じですね。
対話型でrubyを勉強していると打ち間違いが出来ないので、rubyの文法を正確に打つ練習になりました。
次に第五章をやりました。
ここでついに本格的なアプリを作って行きました。
基本的にはrailsの中ではrubyの文法を使うのですが、最初は独特で取っ付きにくかったです。
ですが、少しずつコードを改善して行く手法が取ってあって、「ああ、なるほど。rubyだ。」と思えました。
ruby勉強するのにもrailsのチュートリアルはすごく良いと思います。
少しずつですがrailsの構造も分かってきました。
また、全てにわたって最初にテストコードを書くようになっているのが良いです。
テストコードを書く事で二重で同じようなコードを書く事にはなるのですが、ダブルチェックになっていて、コードのバグを発見しやすかったです。
感想
金曜なのにまだ五章。。。
なんだか間に合うのか?という気もするのですが、
まだ土曜日があります!
rails(1)
タスク
railsの基本を押さえるための勉強をしました。
- railsの基本を勉強する
内容
Ruby on Rails チュートリアル:実例を使って Rails を学ぼうの三章まで学習しました。
第一章ではrailsとは何ぞやという事について学びました。
rubyをインストールするところからherokuでデプロイするまでの事が丁寧に書いてあります。
gitでのバージョン管理についても書いてあり、gitのコマンドにも大分慣れる事が出来ました。
heroku自体はインストールする事が出来たのですが、デプロイするところで詰まってしまいました。
herokuのログを取ってみると。。。
何だろう??
herokuのエラーコードH10には"App crashed"とありました。
これでググってみて対策をしてみましたが、どうもうまくいかずデプロイで来ていません。
第二章ではscaffoldという自動生成gemを使ってマイクロポストを作成しました。
scaffoldを使うとデータベースやhtmlを自動生成してくれます。
確かに自動生成してはくれるのですが、自分で何をやっているのかが分かりにくかったです。
チュートリアルではこの後はscaffoldを使わずに自分でガシガシ書いて行くらしいです。
第三章では実際にSample_Applicationを作成して行きました。
やった内容は静的なページの作成と少しだけ動的なページの作成です。
静的なページは"hello, world"を表示するだけの単純な内容でした。
少し動的なページはrubyの埋め込みスクリプトを使って動的にタイトルを変更するという内容でした。
感想
railsのチュートリアルをやっているとちょくちょくgitで管理する場面がでてきて、どんどんgitに慣れて行ける感じが良いです。
少しずつrailsの構造も分かってきたので自分でアプリを作れる日もそう遠くは無いです。(多分。。。)
256インターンプログラムでこうだったら良いなぁという事
256インターンプログラムをやっていて、こうだったらもっと使いやすいなぁと思った事を何点かあげます。
-
内容•参考•終了条件のフォーマットがプラクティスごとにバラバラなので項目ごとに書き込めるようにしたい
-
終了条件を満たすごとにチェックして行って、全ての条件を満たす事が出来たら完了にしたい
-
タスクのサイトとチャットのサイトを一つにしたい(右側にチャットが流れて行く感じ)
-
困っていますのアピールがしにくい(例えば詰まったら詰まっているユーザとその内容を見れるページみたいなものが欲しい)
-
プラクティスごとに学習済みのユーザの対象のブログに飛べるようにしたい(それでこそ知識を後の人が使いやすい)
-
プラクティスが自己完結していない(例えばGitを習うのは後の方なのにGistで提出とかがあったりする)
-
デザイナー向けとプログラマ向けにコンテンツを分けた方がいいかも
大分自分のモノグサから来ている問題のように感じます。。。。
自社で同じようなインターン学習プログラムを作ってみようかという話が出てきたので
こんな感じだったらずいぶん楽できるってとこをあげてみました。
GitのGUI操作
使いやすいGitのCUIクライアントを色々探してみました。
探してみると色々ありますね。
http://cappee.net/coding/bitbucketsourcetree
http://www.atmarkit.co.jp/ait/articles/1310/15/news019.htmlE
http://git-scm.com/downloads/guis
http://wp-d.org/2013/02/04/2392/
そのなかでも一番使いやすいと感じたのはsourcetreeです。
add,commit,push,pull,mergeなどウィンドウの上の部分にボタンとして配置されていて、とても簡単に使う事が出来ます。
一番基本的な操作を簡単に使う事が出来るので導入も簡単ですし、
Gitの基礎さえ分かっていれば初心者にも使いやすいです。
自分もコードの管理はsourcetreeを使って行きたいと思います。