RailsGuides翻訳

Ruby on Rails Guides (v4.2.0)

These are the new guides for Rails 4.2 based on v4.2.0.
These guides are designed to make you immediately productive with Rails, and to help you understand how all of the pieces fit together.

The guides for earlier releases: Rails 4.1.8, Rails 4.0.12, Rails 3.2.21 and Rails 2.3.11.

RubyonRailsガイド(バージョン4.2)

これはRailsバージョン4.2に基づいた新たなガイドです
このガイドはrailsの理解を助け、すぐにソフトウェアを作れるようにするでしょう

これは以前のリリースのためのガイドです(各バージョンに対してリンクがつらつらと並んでいます)

Getting Started with Rails

This guide covers getting up and running with Ruby on Rails.
After reading this guide, you will know:

  • How to install Rails, create a new Rails application, and connect your application to a database.
  • The general layout of a Rails application.
  • The basic principles of MVC (Model, View, Controller) and RESTful design.
  • How to quickly generate the starting pieces of a Rails application.

はじめに

このガイドはRailsをカバーしています(getting up and running with が分からん)
このガイドを読んだ後、あなたは様々な真実を知ることになるでしょう

  • Railsのインストール方法、Railsアプリケーションの作り方、DBとアプリを繋ぐ方法
  • Railsアプリケーションの一般的なレイアウト
  • MVCとRESTfulの基本的な原理
  • Railsアプリケーションを素早く生成する方法

LT大会のレポート振り返り

LT大会のレポートをるびま編集部様に提出できたということで振り返りを行いました。その模様をまとめたいと思います。

  • 日程:2月20日20時〜22時(2ばっかりやんけ)
  • 参加者:@yucao24hours, @odailly_jp, @talkto_me(リモートでコメントを頂きました。ありがとうございました!), @ohtsuka_t
  • 会場:大塚邸(こたつ完備)

振り返りとしてKPTを行いました。リアルな振り返りの模様は こちらのgithub issue を御覧ください。

Keep

リタイアせずに入稿できたこと

最初は「せっかくLT大会をやることだしレポートにしたら面白いかな〜」くらいのノリで始めたが、入稿まで持って行くことができたということ自体が良かった。

良い写真を載せることができた

ゆかおさんに撮っていただいた写真(でいいんですかね?)をレポートに載せることにより雰囲気が伝わりやすくなったかなと思います。次回このような機会があればよちよちカメラ部の出動宜しくお願いします!

皆に協力していただき進めることができた

メインとして私が書かせていただいたのですが、主に進め方の面でゆかおさん、執筆の面でおだいさん、また個別の記事を書かせていただいた皆様を始め多くの皆様にレビューを中心としたご協力をいただきながらレポートの執筆を進めることができました。レビューは依頼してから遅くても一週間以内に回答をいただくことができ迅速に執筆を行うことができました。twitterのリンクを貼っていただいたり、エセ関西弁の修正をしていただいたり、など自発的なPRを頂きより良いレポートにすることができたと思います。本当にご協力ありがとうございましたm(_ _)m

暴走を抑えられた

御存知の通り、私の書く文章は突如明後日の方向にいったり、誰目線なのかブレブレだったりするのですが、皆様のレビューにより手綱を締めて頂き暴走を抑えることができましたm(_ _)m

振り返りをできたこと

今、僕達がこうして振り返りをできているというこの瞬間が素晴らしいと思うのであります…

Problem

序盤一人でやってやろう感があった

特に序盤、全部やってやんよ(バリバリ-)みたいな感じで思っていましたが、beerの幹事と引っ越しと重なってしまったということもあり、1月の中盤〜終盤に近づくにつれて少し辛かったです。今考えてみるとbeerの幹事は他の人に投げてしまっても良かったかなと思いました。しかし中盤以降は「任せるところは他の人に任せよう」というふうに考えを切り替えることができたので、そこは良かったと思います。無駄なこだわりは自分の首を締めるかもしれないのでご注意を。

体制をしっかり整えておけばよかったかも

しっかり体制を整えてのスタートではなかったため、行き当たりばったり感があった。何人かでチームを組んで進めることができたら良かったかなと思いました。執筆中に大きな修正があったときにどうするかなど、何か決め事をするときには都度ゆかおさんに相談してしまったため、いらぬ手間をかけてしまいました。私がズバッと決めればよかったかもしれませんが、このようなレポートは個人のものではなくコミュニティのものでもあるという認識もあったため自分では決めきれなかったということもあり、体制をしっかり整えることができればより円滑に進めることができたかなと思いました。 

レポートを書いていることをちゃんと周知すべきだったかも(できていたのでは?)

今回の振り返りで参加していただいたのはレポート執筆で中核を担っていただいたメンバーだったので、レポートを書いているということはもちろん知っていたのですが、他のよちよちメンバーにレポートを書いていたことは十分に伝わっていたのかな?という話題が出ました。振り返りの中では「十分に周知できていたと思う」という結論になったのですが皆様いかがだったでしょうか?また、周知にはどのような手段を使うのが良いのかなという話題も出ました。どれも一長一短で結論は出ませんでしたが。

何もしない時期があった

「年末年始で時期が悪かった。1月から本気出す」という言い訳をしつつ、10日間くらい何もしない時期が続いてしまいました。その後レポート執筆に復帰できたので良かったですが、一歩間違えたらそのままお蔵入りになっていたかもしれません。執筆復帰はできましたが、一旦期間が空いてしまうと中々大変でした。

日にちが経ってしまったため内容をしっかりと覚えていなかった

LT大会は12月20日に開催されましたが、1月いっぱいレポートを書いていたので、さすがに1月も中盤に差し掛かるときにはしっかりと発表内容を覚えていないところもありました。「12月中に書きます!」と言った覚えがありますが、その通りさっと書いてしまうことができればそれがベストだったかもしれません。今回は個別の発表に関しては皆様のスライドを見せて頂くことができたので、それを見ることにより発表を思い出しながら書くことができたので良かったです。

Try

体制をしっかり整えておけばよかったかも

Problemでも書きましたが、体制を整えるというのが大事だと思いました。今回はなにか困ったことがあったらゆかおさんに相談してしまっていたのですが、チームを組んで他に相談できる人がいればよかったかなと思いました。チームの決め方に関しても少し話したのですが、担当を指定して「じゃあAさんとBさんお願いね」ということはあまりしたくなく、数名立候補してチームを作ったり、皆で少しずつ何かを担当するのが良いのかなという話をしていました。コニュニティとして初のレポートということもあったので、回数を重ねていけば自然と方向性ができていくかな〜と思いました。

個別記事の書き方

Tryではないかもしれませんが話題に上がったので書きます。今回は10名強の方々の発表を選んで書かせていただきました。なぜこのような人数になったかというと、個人的な考えとして「書くなら詳しく書きたい」という思いがあったからで、全員分書くのは書き手/読み手どちらも大変になってしまうかと思い人数を絞って執筆させていただきました。他の意見として「内容は詳しくなくても良いから参加者全員の名前と写真を出したい」といったものもありました。これはどちらが良い悪いという話ではなく、レポートの目的や書き手の思いにより変わってくるものです。今回のレポートもまだ編集が可能なはずなので、できれば発表していただいた皆様の名前を載せたいと思います。

まとめ

なんとなく思っていたことはありましたが、振り返りをすることにより形として残すことができて良かったです。参加していただいた皆様有難うございました。今後レポートの執筆など行う際の参考になれば幸いです。

北谷旅行

沖縄県は北谷に行ったのでそのレポートです。北谷は「ちゃたん」と読みます。なぜ北谷に来たのかというと、中日ドラゴンズがキャンプ(シーズン前の一ヶ月にわたる練習)を行っていたからです。北谷行きのきっかけはキャンプですが、その他のこともボチボチ書いています。

練習試合

13時からサムスンライオンズという韓国のプロ野球チームとの練習試合が行われました。日本のプロ野球というのは常に応援が鳴り響いている感じなのですが、練習試合だからということもあってか応援歌は無く、プロ野球という舞台でピッチャーが投げるときに「フンッ!」という声が漏れたり、野手の「ナイスピッチ!」という声がよく聞こえるのがとても新鮮に感じました。応援歌もいいんですが、選手の声が聞こえるというのもとても良いと思いました。

尚、試合には負けました。

今日の注目選手

今日の試合で気になった選手を数名ピックアップします。

亀澤内野手

ホークスを自由契約になり、今年からドラゴンズに移籍してきた選手です。今日はショートで出場していました。守備でダイビングをしたり、盗塁でヘッドスライディングをしたりを絵に描いたような元気印な選手だと感じました。手袋などが白地に緑をあしらっていたのですが「亀だけに緑なのかな」などというくだらないことを考えながら見ていました。

岸本投手

育成選手の投手です。おもいっきり打たれていたのですが、ストライクをバンバン投げこむ姿に清々しさを覚えました。肝が強そうな気がしました。

三ツ俣内野手

今日の試合がどうこうというわけではなく、去年見た試合で重要な場面で代走に出てきて牽制死したことにより、私のターゲットになってしまった気の毒な選手です。ほとんどつぶやかれない私のtwitterも、現地で見ている試合で三ツ俣が出場すると「三ツ俣がでた」とつぶやかれます。ちなみに今日はきっちりヒットを放っていました。

居残り特打

試合終了後、17時位から亀沢・高橋周平・松井雅人の3選手が特打を行っていました。高橋周平の打撃を見ていると、ノムさんが語っていたように「打球を遠くに飛ばせるのは天賦の才」というのがよく分かりました。いや〜すごかった、早く大成してくれぃ。

どうする、夕飯

北谷に来るのは初めてということもあり、沖縄に明るい同僚におすすめのお店があるか伺ってみたところ、キングタコス普天間店を教えていただきました。微妙に距離があり、行くかどうか悩んでいたところ「そういえば宿にレンタルチャリンコがあったような…」というおぼろげな記憶と共にカウンターに行って聞いてみたところ「はい、2時間以上で500円、6時間以上で1000円の追加料金を頂きますが…」と言われたので「おう、分かった分かった。早ようキーを渡せぃ」と言った面持ちでキーを受け取り、夜の北谷を疾走しました。無事に店に到着し、オススメしていただいた「タコライスチーズ野菜」を頂きました。癖になる辛さでとても美味しかったです。

どあーらー、Tシャツを買う

そそくさと自転車を二時間以内で返却し、宿の近くのアメリカンビレッジという店街(?)を散策しました。オシャレっぽい店が軒を連ねていました。そこら辺にはあまり興味が無いのでなんとなくふらついて帰ろうと思っていたのですが「orion」とプリントされたTシャツを展示している店の前で私の足が止まりました。私はたまというバンドの「オリオンビールの唄」という歌が好きなのであります。というかオリオンビールが好きなわけであります。というかビールがs(ry。その店にずかずかと入り込み店内を物色していると、定員の方が「この店限定なんですよ」と口撃を仕掛けてきました。割りと「限定」に弱いところがある私はちょっとだけ悩んだ挙句orionTシャツを購入しました。まあちょっとくらい旅の思い出を品として残してもいいじゃない。


オリオンビールをちょっただけ嗜みつつ書いてきましたが、一日目はこんな感じですかね(二日目を書くとは言ってない)。なんとなく沖縄まで来ちゃいましたがなんだかんだ楽しいもんですね。今回の私の旅はキャンプがベースにあるのであれですが、宿の近くにビーチもありますし、おしゃれなお店も多い(と思う)ので普通に旅先として楽しめるのではないかと思いました。

俺のよちよちrbヒストリー

このブログ記事は、よちよち.rb Advent Calendar 2014 - Adventar の第6日目のための記事です。

昨日は @5t111111 さんによる Kajaeru コードリーディング | FIVETEESIXONE でした。
読ませていただきましたが素晴らしい記事ですね!

他のよちよち新規メンバーで、Kajaeru に contribute したい人のとっかかりになればいいなと思います

と書かれていますが、まさにKajaeruのとりかかりとして有用な記事ですね!

誰か続きを書いてくれたりすると嬉しいですね!

コードリーディングブログリレーみたいなことをしても面白いかもしれないと思いました!

何を書こうかねぇ

よちよちrbのミートアップで使用している自己紹介ファイルに、「俺のよちよちヒストリー」みたいな感じで今までの軌跡をまとめたいと思っていたのですが、なかなか着手できずにいました。
今回アドベントカレンダーに参加する機会をいただき、これ幸いと「よちよちrb」に参加してからの約9ヶ月をtwitterなどを見ながら振り返っていきたいと思います。

3/17 出陣

この日が私の記念すべきよちよちrb初参加の日でした。(第12回/ザギンでルービー!!
集合場所に着いたは良いもののどこに行けばよいのか分からず、緊張しながら駅前をウロウロしていたのも良い思い出です。
ちなみに現在は目印の黄色いヒヨコちゃんがいるので集合場所に迷うことはありませんのでご安心を( ・`ω・´)b

4/28 【悲報】「矩形」が読めない

個人的にこの日が色々な意味においてのよちよちデビューだと思っています。
ドヤ顔でvimの矩形を紹介していたのですが、結果漢字力のなさを露呈することに...

5/7 初のもくもく会

よちよちrbでは第2月曜日は通常のRailsTutorialの読み合わせと異なり、復習会 or もくもく会をやっています。(間違っていたら教えて下さい)
この時は「gitでコンフリクトしようぜ!」チームで、gitのコンフリクトとその対応方法の勉強をしていたような気がします。

6/16 ドアラになる

もはや語ることはあるまい。一番の転機となった日でしょう。
この日を境にドアラさんと呼ばれるように(⌒(´・▲・`)⌒)

語ることはあるまいと言いましたが、多分誰も詳しいことは知らないので よちよち.rb 第50回 みんなで LT デビューしよう会 - よちよち.rb(初心者限定 Ruby On Rails 4 とか勉強会) | Doorkeeper で経緯を話そうかなあ。

6/18 よちよちbeer

よちよちrbでは不定期(月1回程度)で飲み会を行っています。
私は毎回へべれけになっては↓のような意味不明なことを言っています。(どういうことなんでしょうね??)

8/3 ゴールデンドアラになる

今年の目標であった「Ruby技術者認定試験制度Gold」に合格しました!(=ゴールデンドアラになった)

8/18 読めるけど書けなーい

とあるミートアップで、読めるけど書けないものベスト3を決定。( @pupupopo_ さんと @highwide さんとの合作)
誰や!新潟が書けへんとか言うたんは!!

8/23 Kajaeruハッカソン

よちよちrbから Ruby Kaja を選出することになり、せっかくだから投票アプリを作りたい!ということでよちよちrbのメンバーで「Kajaeru」というアプリを開発しました。
確か期間が1ヶ月くらいしかなく、その限られた中で完成させて、さらに実際に運用できたことはとても素晴らしいことだと思いました!
Kajaeruハッカソンも行いました。以下のつぶやきは、私と @talkto_me さんでひっそりとKajaeruハッカソンの火蓋が切って落とされた時の模様です。

鹿児島名物かるかんのお土産をおいしく頂きました。
私「カルカンって猫まっしぐらのあれじゃないんですか?」

8/25 YO将軍

YOを始める!
一度チャットに「それがし」と書き込んだことをきっかけに「ドアラ」に加えて「将軍」とも呼ばれるようになりました。
ドアラ」とくっつけて「ドアラ将軍」と呼ばれることもしばしば。

9/22 RailsGirlsのよちよちrbの紹介LTの再演

Rails Girls - Japanese のコーチをさせていただき、その時によちよちrbの紹介LTをさせていただきました。
この日のミートアップではその再演を行いました。

10/20 ひよこちゃんをかぶる

集合場所にて、いつもどおり @yucao24hours さんがひよこちゃんをかぶろうとしたところ、 @katorie さんの「大塚さんがかぶりたいって言ってるよ〜」という一言でひよこちゃんをかぶることに。
デカイわマスクしてるわ黄色いわで通行人に二度見をされる快挙を達成。
もしかしてひよこちゃんをかぶったことあるのって @yucao24hours さんと私だけですかね!?

11/7~9 開発合宿

静岡県は伊東市山喜旅館 で開発合宿を行いました。
開発合宿という形でいつもと違う環境に身をおき、カードゲームを開発をするというのは初めての経験でしたが、集中できてとても有意義な合宿となりました。

振り返ってみて

ざっと振り返ってきましたが、9ヶ月の間に色々なことがあったんだな〜と実感しております。
よちよちrbにすでに参加されている方には「こんなこともあったな〜」と懐かしんでいただき、参加されたことがない方にはよちよちrbの雰囲気が伝わればそれに勝る喜びはございません。
個人的に、今年はコミュニティなどを通して知り合いを増やしたいと思っていて、それがよちよちrbに参加させていただいたきっかけの1つでもあったのですが、素晴らしい仲間と巡り会うことができて、よちよちrbに参加してとても良かったと思っております!

次回予告

明日は @bonbon_0605 さんの「内容は最初1週間の様子を見て決めます」です。お楽しみに!

優秀な後輩

木枯らし吹きすさぶこの季節
朝から勉強せんと早朝に目は覚ますものの
顔も凍る寒さに鉄の意志は脆くも崩れさり
エアコンをエコモードで起動し布団にうずくまり
行動開始は7時過ぎ

先週の金曜日に RESTful#とは勉強会2 - Ruby Children | Doorkeeper に参加してきました(詳細はtwitterで #RESTudy で検索!)

今回は2回めの参加となったのですが、今回は @t_kawa さんと直接お話しさせていただく機会もあり良い勉強となりました

今回の範囲は「URIの設計」の話でした

内容をざっと思い出してみると

URIは変わりにくくすること

  • 言語に依存したパスや拡張子にしない
  • メソッド名を含めない
  • 動詞を使わない

これらを意識することによりhttp://example.jp/servlet/LoginServletのようなURIhttp://example.jp/loginのようにシンプルになります

実際に同じテーブルに Struts というWebフレームワークを利用されている方が「.doという拡張子メソッドはURL付けざるをえない」例)http://example.jp/Login.do?action=showPageという話をされており、理想と現実のジレンマを感じておりました

URIを変更したいとき

  • 変更するのは好ましくないですが、どうしてもという時はリダイレクトするようにしましょう

URI設計のテクニック

ざっとこんな感じだったでしょうか

タイトルの後輩とは、私の後輩ではなく一緒に宴会に参加していた @highwide さんの後輩のことなのですが、

私「ドアラって知ってます?」

後輩君「あのバク転を失敗するマスコットですよね?」

実に素晴らしい

【追記】カープぼうやのアイコンを見てtwitterでフォローさせて頂いていた @chiastolite ともお話させていただくことが出来ました
ありがとうございました!!

simplecovを使ってみた

※実際に使ったのと記事を書いた時期にタイムラグがあるため漏れがあるかもしれません。ご了承下さいm(_ _)m

使ってみて良かった事

  1. model、controllerなどで定義したメソッドのテストの有無をチェックしてくれるので漏れを解消できる
  2. テストを書く動機となった
    • 何パーセントテストを書けているか教えてくれるので、100%にしたくなる

導入

  • Gemfile に以下のように書き込み bundle install を実行
gem 'simplecov', require: false, group: :test
  • spec/spec_helper.rb の先頭に以下のように書き込みます
require 'simplecov'
SimpleCov.start

使い方

  • いつも通りspecを流します
$ bin/rspec
  • するとアプリのホームディレクトリに coverage/index.html というファイルが作成されます
    • gitで管理する必要は無いと思うので、私は coverage ディレクトリごとgit管理下から外してしまっています
  • そのファイルをブラウザで開くと以下のようにファイルごとのテスト対応状況を一覧で表示してくれます

f:id:t_ohtsuka:20141019211249p:plain

フィルタリング

  • 使い方としては上記で終了なのですが、vendor/bundle 配下に gem をインストールしているからか、そのテストも表示してしまうようです(でいいのかな?)
  • vendor/bundle 配下のテストを非表示にするために、rails_app ディレクトリ配下に、以下のように .simplecovというファイルを作成しましょう
SimpleCov.start :test_frameworks do
  add_filter "/vendor/bundle/"
end
  • ファイル作成後もう一度specを流すと、以下のように自身で書いたコードに対してのみテストが書かれているかどうかを表示してくれるようになりました

f:id:t_ohtsuka:20141019212639p:plain

  • 目指せ100%!!

rbenv-default-gems試してみた

rbenvで新しいバージョンのrubyをインストールする際、いつも使うgemをインストールするのめんどくさいよ〜となるのですが、そんな時にrbenv-default-gemsを使うとその手間を省いてくれるとの事なので試してみました

インストール

$ git clone https://github.com/sstephenson/rbenv-default-gems.git ~/.rbenv/plugins/rbenv-default-gems

(rbenvのインストール先によってpathを適宜変更してください)

使い方

~/.rbenv/default-gems に自動でインストールしたいgemを書きます。

バージョン指定したい場合はそのバージョンも書きます。

$ vim .rbenv/default-gems

bundler 1.6.2 
pry

すると、新しくRubyをインストールする時に上記に記述したgemを同時にインストールしてくれます。

$ rbenv install 2.1.3
Downloading ruby-2.1.3.tar.gz...
-> http://dqw8nmjcqpjn7.cloudfront.net/0818beb7b10ce9a058cd21d85cfe1dcd233e98b7342d32e9a5d4bebe98347f01
Installing ruby-2.1.3...
Installed ruby-2.1.3 to /Users/ohtsuka/.rbenv/versions/2.1.3

Fetching: bundler-1.6.2.gem (100%)
Successfully installed bundler-1.6.2
1 gem installed
Fetching: coderay-1.1.0.gem (100%)
Successfully installed coderay-1.1.0
Fetching: slop-3.6.0.gem (100%)
Successfully installed slop-3.6.0
Fetching: method_source-0.8.2.gem (100%)
Successfully installed method_source-0.8.2
Fetching: pry-0.10.1.gem (100%)
Successfully installed pry-0.10.1
4 gems installed