『Ruby on Rails 5 アプリケーションプログラミング』でRails学習 その5(モデルのつづき)
みなさん、体重定期的に測ってますか?
私は測ってません!!(どや)
でも自分の体型にはわりと敏感な気がします。
お風呂上がりに鏡で肩周りの肉付きを見たり、
洋服を着た時に着心地がほんの少しだけ違ったり、
ほんの些細な違和感程度で「ん?」と思えるので調整可能です。
まあ、それでも食べ続けてると、不可能です(当たり前)。
体重は、年1回の健康診断と、
本当にやばい気がするときだけタニタの体重計で測ってます。
ちなみに今、この違和感を感じてます。
毎日ケーキ食べてたからでしょうか。間違いないですね。
さて、では本題に入りましょう。
前回モデルの途中で終わったので、その続きからです!
前回の記事はコチラ↓↓
このシリーズを初めから読みたい方はこちら↓↓
前回の記事では、
「書籍情報を表示するサンプル」を作るのがゴール。
でもbooksテーブルのテストデータが2件しか入ってなくて「キーーーッ!!」
ってとこまでお伝えしました。(何か違う)
2.4.7 データ取得の基本(P53~)
ほうほう。書籍によると、これが終わった際には
booksテーブルに格納されているデータがキレイに
画面に表示できるにようになるみたいですね!
早速やってみましょう。
①listアクションを追加
「railsbook\app\controllers\hello_controller.rb」を開きます。
こんな感じで編集します。
Bookクラスのallメソッドを呼び出すことで、
booksテーブルの情報すべてを引っ張り出すイメージですね。
②テンプレートファイルを作成する
hello#listに対応する「list.html.erb」を作成します。
場所は「railsbook\app\views\hello」の下です。
eachメソッドでbooksテーブルのすべてのレコードを
順番に取り出していく仕組みですね。
「.isbn」などで、それぞれの列の値を個別にとっています。
③ルート定義を追加する
最後にルート定義を「railbook\config\routes.rb」に追加してあげます。
以上の3ステップで出来上がりなはずです!
「http://localhost:3000/hello/list」にアクセスしてみまーす!
どん!!!
エラーーーー!!!!!
なんで?と思ったら、新規で作成したファイルのエンコードが
「SJIS」になっていました!
これを「UTF-8」に変えてみると、、
でーきたー(`・ω・´)
ただ、味気ない。
ISBNコードですらMyStringってどうなってんのサンプルコードちゃん。
てことで、ちょいといじってみました。
いじったのはここ。
「railbook\test\fixtures\books.yml」ファイル!
ここに今現在booksテーブルに入っているデータがあります。
こんな感じにちょちょっと、、
念のためSQLiteクライアントでも変更を確認、、
大丈夫そうですね!
(画像では1冊分しか変えてませんが、もう1冊も変えてみました)
では、再度アクセス!
じゃーーん!出来ました!!!
これにてモデルの基本は終了です。
『Ruby on Rails 5 アプリケーションプログラミング』でRails学習 その4(モデル)
寒いんだか寒くないんだか。
東京はそんな日が続いてますね。どうもモックです。
昨日、初めて生命保険の営業を受けて困ってます。
(よくある知り合いからパターン。
今度会って具体的な提案をさせてくれないかと。
知り合いがだいぶ年上のこともあり、ひるんでとりあえずOKしてしまいました。。)
そして、自分自身、業界のことも少し分かるし、
中には本当に人のことを思って生命保険をおすすめしてくれる
営業さんもいるので(当たり前か)、とっっても複雑!!!!
まあ今生命保険自分では入ってないし、
いい歳なのでそろそろ真剣に考える時期なのかな~と...。
てことで!いっそ思い切って保険ショップ行ってみて!勉強してこようかなと!
もしちゃんと行けたらそれだけの記事書きます!!!!!
悩み爆発してごめんなさい。
てことで。今日も続きをやっていきます!!!
前回の記事はコチラ↓↓
今日は書籍のP44から、ついにMVCのModelについてやっていくみたいですね!
2.4 モデルの基本(P44~)
「2.4.1 O/Rマッパーとは」、「2.4.2 データベース接続の設定」は
今回は特に作業を行っていないので割愛します。
2.4.3 モデルクラスの作成(P48~)
さて、O/Rマッパーについても学んだところで、
やっとこさモデルクラスを作成します。
今回は「書籍情報を表示する」というサンプルのようですね。
では、rails generateコマンドを実行してみます。
実行する際は、作成したアプリケーションのディレクトリまで移動しますよ。
(書籍どおりに進めている人は”railbook”という名前ですね。)
はい、実行されました!
それぞれのディレクトリを見てみましょう。
・\railbook\app\models
・\railbook\db\migrate
・\railbook\test\fixtures
・\railbook\test\models
それぞれしっかり出来ていました!
2.4.4 マイグレーションファイルによるテーブルの作成(P50~)
先ほど作られたマイグレーションファイルを確認します。
こんな感じで「\railbook\db\migrate」の下に、
恐らく実行した日付的な名前で作られていますね。
ファイルをひらいてみます。
なるほど。このコードをみると、
「ISBN番号、タイトル、価格、出版元、発行日、ダウンロード可能かどうか」
という情報を格納するテーブルが作られそう!ってことは
直感的に考えることができますね。
ではこのマイグレーションファイルを実行してみましょう。
無事booksテーブルができました!
これだけでテーブルが出来るなんて、感動です。
2.4.5 フィクスチャによるテストデータの準備
今のままでは作成されたテーブルには何の情報もないので
テストデータを入れておくようです。
※ちなみに書籍ではこれで10件ほどのデータが展開されると書いてありましたが、
どういうわけか私は2件しか出来ませんでした...
(次の2.4.6 で詳しく説明します)
2.4.6 補足:データベースクライアントの起動
rails dbconsoleコマンドで、SQLiteクライアントを起動できるみたいですね。
これはもちろんやってみましょう。中のデータがわかります。
まず、「rails dbconsole」でクライアントを起動。
次に、「.schema books」で、「booksテーブル」の構造がどのようになっているか調べることができます。列名や、データ型がわかりますね。
...ん?んん?
わかりますでしょうか。
私は次に「select * from books;」と実行してみているんですが、
(SOLiteもoracleやpostgreSOLとそんなに変わらないのかな)
そのあとに出力されているのが、中に入っている「本」情報の詳細です。
え!?これで全部!?しかも書籍名とかMy Stringとかてきとー!!
しかも全く同じ書籍情報2冊分しかないやんけ!!
にわかに信じられず、カウントしてみました。
モック「SQLiteさんや、booksテーブルには何冊の情報があるんだ~い?」
SQLite「2」
お、おう...。わかったよ..。
とりあえずほっとくことにしました。
モデル、長くなるので次の記事に区切ります!
『Ruby on Rails 5 アプリケーションプログラミング』でRails学習 その3(ビュー)
空気がもう冬だと感じる今日この頃。
なんだかチョコレート系のお菓子ばっかり食べたくなります。
ロッテのチョコパイしかり、明治のブラックチョコレートしかり...
あと最近やたらCMやってるシャルロッテ(これも明治さん)が
おすすめ!!!!
コンビニチョコレートの中には贅沢な部類に入るんですが
値段以上のおいしさです。大満足。
ということで、今回も続きやっていきます!!
前回記事はこちら↓
2.3 ビューの基本(P34~)
今回は「ビュー」からですね。
ERBテンプレートはその昔HTMLだけやっていた自分にとっては
すげえありがたい仕組みです。その中にRubyそのまま書けるって。
前回はコントローラークラスから直に文字列を出力してましたが
今回はテンプレートファイルを経由させるらしいです。
早速やってみましょう。
以前作った、helloコントローラーを開きます。
(app\controllers\の下にあるはずです)
この「@msg」がテンプレート変数ってやつらしいですね。
次にこの変数を利用する、テンプレートファイルを作成します。
さっそく新規作成で作りましょう。
上のようなファイルを作ったら、
「app\views\hello\」の下に「view.html.erb」という名前で保存しました。
あとは、ルート定義を実行するだけですね。
「config\routes.rb」を開きます。
このように編集してみました。
では、「http://localhost:3000/hello/view」にアクセスしてみます!
無事にできましたー!!
今回は特に問題なく、スムーズに出来てしまいましたね。
少し短いですが、続きはまた次回です。
『Ruby on Rails 5 アプリケーションプログラミング』でRails学習 その2(アプリ作成、コントローラー)
台風きてますか?
うちはさっきまで雷鳴ってましたが今は落ち着いちゃってます。
こりゃ明日は仕事だぜ(そもそもそんなに期待していない)
はい、モックは只今おさつスナックを食べながらこれを書いてます。
おさつスナック、久しぶりに食べたんですが、
お芋のホクっとした感じが再現されててすごいです!!!
ということで、前回の続きを進めますよ~!
(ブログ初めて以来この記事しか書いてないんですけど
今は同時並行でOracle認定試験のJava Silver学習中です。
今年中に受験予定。今度記事書きます。)
↓前回の記事です。
さて、書籍『Ruby on Rails 5 アプリケーションプログラミング』を使って
今日も引き続きやっていきましょう。
今回はちょうど、第2章のスタートからですね。
2.1 アプリの作成(P22~)
いよいよアプリの作成ですね!
ここまで書籍に超従順な私でしたが、アプリの作成は
外付けのHDDに行うことにしました。
コマンドプロンプトでアプリを作りたいフォルダまで移動して、
「rails new railbook」と実行!成功しました。
成功したあと、こんなかんじになってました。
いろんなフォルダができてますね。
今はまだそれぞれが何なのか、まったくの無知です(´;ω;`)
さて、次にHTTPサーバーを起動してみましょう。
「rails server」を実行するときは、アプリケーションのディレクトリまで降ります。
無事に起動できたようです。
さっそくアプリにアクセスしてみます!
やったー!無事画面が表示されました!
どうでもいいかもしれませんが、この画面すごく可愛いですよね。
こういうセンスに触れると、Ruby好きになっちゃいます...。
2.2 コントローラーの基本(P27~)
MVCモデルのCにあたる、コントローラークラスを作成します。
じゃ、早速helloというコントローラーを生み出しましょう。
「rails generate controller hello」とコマンドを実行します。
生まれました!!!
一口に「コントローラーの作成」といっても、
色んなファイルが出来るんですね。
さてさて、書籍に沿って「hello_controller.rb」を開いてみましょう。
こんな感じに\app\controllersの下にあります。
下のように編集してみました。
(このときまだテキストエディタを入れてなかったので
まさかのメモ帳です...笑)
さて、続いてはルーティングにいきますよ。
「routes.rb」を編集してみましょう。
ここに記述することで、
リクエストに答えて処理を実行できるというわけですね。
ふむふむ。
よーし!リクエストしてみましょう!
「http://localhost:3000/hello/index」にアクセスしてみます。
撃沈しました。。。。
しかもそのあとソースコードを見直しましたが、原因がわからない。
そこで、hello_controller.rbを下のように修正してみました。
微妙にテキスト出力の方法を変えてみました。
(悔しかったので「こんにちは、世界」も英語にしてやりました)
その結果、、
でたーーーー!!!
やっぱり世の中英語です(違う)
しかし先ほどのやり方でうまく出来なかった謎は解けていません。
分かる方いらっしゃったらお教えいただきたいです。。
はい、最後に少し躓きましたが、今日はここまで。
次はビューからですね。地道にコツコツやっていきます。
『Ruby on Rails5 アプリケーションプログラミング』でRails学習 その1(環境構築)
2週間連続、週末の台風。ちょっと気が滅入りますね。。
そんな中!私は!ニンテンドースイッチをゲットしましたので!
全然雨が苦しくありません!!(ドヤ)
さてさて、無理はせずゆるーく更新します。
前回の続きです。
↓前回の記事
いよいよ書籍を開きますよ。
(前回の記事では書籍を2種類紹介していますが、
今回は『Ruby on Rails5 アプリケーションプログラミング』に
手を付け始めるところから公開していきます。)
この書籍の第1章は、イントロダクション。
フレームワークの説明や環境設定から始まっています。ありがたいですね。
そう。環境設定!
ハマっちゃう人はハマっちゃうところですね...。
私は超従順な人間なので、なるべくこの書籍に沿って
やっていくことにしました。
書籍通りだと、Cドライブ直下にいろいろ配置していくようです。
せっかくなので、まずは自分のPC内の整理から始めました。
いらない物は捨てて、移動できるものは外付けHDDに移動して...。
大雑把人間なのでこういうタイミングじゃないと
なかなかPCの中キレイにできないんですよね(^_^;)
では、いよいよRuby on Rails開発のための環境設定を行っていきます。
といっても、本当に基本的には書籍通りに進めば問題なく終わるでしょう。
だた、いくつかハマったところもありましたので、
そのあたりを中心にお話します。
※筆者はWindows環境(64bit)での構築になります。
①まず、Rubyをインストールしました。
私がインストールする時点で最新版は書籍で案内されている「2.3.3-p222」とは違っていましたが、書籍に従順に「2.3.3-p222」をインストールしました。
②次に、SQLiteのインストール。
こちらも難なく終了。
ダウンロードするときに似た名前のものがいくつかあるので、気を付けてください。
書籍と同じ名前のものがない場合は
「sqlite-tools-win32-x86-xxxxx」(xxxxxには適当な数字がはいります)
となっているものを選べば大丈夫だと思いますよ。
③DevKitのイントール。
恥ずかしながらここでちょっとハマりました。
なんとか成功した手順は以下です。
・「C\Ruby23-x64」の下に先に「devkit」というフォルダを作りました。
・DevKitをダウンロードして、実行。
このとき、展開先を「C:\Ruby23-x64\devkit」にしました。
すると上のような展開になります。
やったー!
書籍の通りにやると、どうしても「C:\Ruby23-x64」の中にこれが展開されてしまうんですよね(devkitフォルダを作る隙がない)
・書籍どおり、>ruby dk.rb init でコマンド実行。
問題なく終了しました。
・書籍どおり、>ruby dk.rb install でコマンド実行。
エラー出たー!!
「Invalid configuration or no Rubies listed. Please fix ‘config.yml’ and rerun ‘ruby dk.rb install’」
↑こんなエラーがでました。
とりあえず、「config.yml」をなおせってことらしい。
どうやってなおすねん。
★参考にさせていただいた記事
ふむふむ。どうやら「config.yml」の最終行に
「- C:\Ruby23-x64」と追記するらしい。
↑こんな感じでやってみた。
で、再びコマンド実行したら、できましたー!!やったね!!
④Node.jsをインストールする。
はい。これは書籍どおりやれば大丈夫です。
⑤やっと、Ruby on Railsをインストール。
ほぼ書籍どおりにやりましたが、私は
「>gem install rails -v5.0.1」
と実行して、書籍と同じバーションをインストールしました。
3分ほどで完了!「37gems installed」と表示されました(書籍は36gemsだけど)
以上で開発環境の構築(書籍P12~18部分)は終了しました。
私はこのあとP20に書いてあるサンプルのダウンロードもしておきましたよ。
これでやっと次回からRailsに触れるってわけです!!
『Ruby on Rails5 アプリケーションプログラミング』でRails学習はじめてみた。
現在仕事では主にjavaを使っている私ですが
プログラミングを知って2ヶ月くらいが経った頃、
少しだけRubyに触ってみました。
その時、なんというか、
っていう印象が残ったんですね。
そこで
「一から考えたオリジナルアプリを作ってみたいなー」
なんて考えていた夢見がち女は、
慣れているjavaではなく、Rubyで作ってみることを決意いたしました!
ちゃんとRubyに触るのは初めてです...
ということで早速、
RubyとRuby on Railsについての学習を進めることにします!
(初心者の私は一番メジャーだと思われるRailsを
フレームワークとして選びました。
検索したとき情報がたくさんありそうなので。)
学習に使用する参考書
①『たのしいRuby 第5版』
こちらはRuby学習の定番の一冊のようです。
内容としてはとても充実しているのですが、
それでもすっきり、簡潔に、書かれている印象です。
例がたくさんあるので、本の内容に忠実に進めていけば、
特に悩むこともないのではないかと思います。(個人的な見解)
私は環境を構築して、この本に沿って実際に打って動かしてみて...
をさらっと一通りやってみました。
②『Ruby on Rails5 アプリケーションプログラミング』
(著者:山田祥寛)
さて、これから私と二人三脚になるであろう、一冊です。
さすがに初めから一からアプリケーションを作るのは無謀だと判断したので、
本を読み進めながら簡単なアプリケーションが作れるものを探していました。
実は他の本とも迷ったのですが、
パラパラめくってみて自分が読みやすかったのと、
各サイトのレビューで「ある程度身に付いたあとでも辞書がわりになる」
というようなコメントがあり、
「長く使えそう...」と思ってこちらを使用することにしました。
今後はこちらの本に沿って進めていき、
実際にやってみた過程などをこちらにあげていきたいと思います。
ちなみにどういうアプリを作ってみたいかは大体決まっているのですが
きちんと寝かせて(内容詰めて)から発表することに致します...
長い戦いになるかとは思いますが、地道に頑張るぞ!!!
ブログ開設しました。マイプロフィール。
はじめまして
どうも、このブログの管理人、モックです。
(ぎりぎり)20代前半の(ぎりぎり)女でございます。
見てお分かりの通り、ブログ開設しました!きゃっほー!超初心者!(震える)
...というわけでですね、
飽き性の私がブログを開設するなんて、そりゃあ目的あってのことなんです。
なので、記念すべき第一回目の投稿は、
管理人モックがどんな人種であり、ここで何を綴ろうかと思っているのかという、
ざっくり「自己紹介」的な感じの内容にさせていただきますね。
(的な感じ、ってめっちゃ若者っぽい言葉遣いだなと思う。)
管理人プロフィール
名前:モック
性別:女。男子力も女子力も持ち合わせた女。
年齢:平成生まれ
職業:技術職(SE)1年目。生まれたての小鹿。
それまでは接客業をやっておりました。4年ちょい。
道具:現在は主にjava、OracleSQL、PostgreSQLなど。
個人的にRubyに手を出しつつある。
性格:集団行動を好まない。だが苦手ではない。
基本的に家にはあまり人をいれたくない。
求められれば驚くべきコミュニケーションを発揮する。接客は大好きだし得意。
活動範囲:東京、神奈川、たまに千葉
よくすること:ライブへ行く(ロック)、料理、絵を描く、買い物、歩く、寝る
このブログで書きたいこと
簡単にいうと、「女エンジニアの日々の記録」です。
私生活も、技術的な内容も、どちらも書こうと思ってます。
頭いい人たちには「いや、どっちかにしろよ!」とツッコまれそうな感じではあるんだけど、
欲張りなのでどっちも書きます!!!!
冒頭で「ブログを始める目的」なんて偉そうなことを言いましたが
自己満足な部分も結構あるからね。すいませんね。
ただ、私が転職や引越し、そして普段の一人暮らしをするにあたって、
意外と人のブログを参考にさせてもらうことが多かったんです。
同じようなことばかりがまとめられているネットの記事より、
生の声を知れるのはありがたかったし、
なにより人の生活を知れるというのは面白かった。(怪しいものではありません)
だから私も、提供する側をやってみようかな、と。
そんな簡単な理由だというのが正直なところです。
私は
エンジニア初心者であり、(大学までずっと文系)
女性エンジニアであり、
一人暮らしをしているOLでもあり、
そんな要素をもった私が送れる情報を
ざっくばらんに発信していければな、っていう、そんな感じです。
たまに、なんでエンジニアとしての道を選んだのかなど、過去の話もすると思います。
誰かが情報を求めた時に、
私なりの「情報」で応えることが出来れば。
そう思ってブログを書く事にするので、どうぞよろしくお願いします!
...さて、飽き性の私はいつまで続くかな!?