Skip to content

Instantly share code, notes, and snippets.

@hytdsh
Last active October 21, 2019 03:33
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hytdsh/183121096ff11a00a6a837db99439673 to your computer and use it in GitHub Desktop.
Save hytdsh/183121096ff11a00a6a837db99439673 to your computer and use it in GitHub Desktop.
railstutorial.jp の Rails 5.1(第4版) の気になった箇所

1章冒頭の本文「この章のおもちゃのアプリ (toy_app)」の箇所は一部の書体が斜体になっている。また"toy_app"のフォントスタイルが前後の段落の"hello_app"や"sample_app"と一致していない。

1.1.2本文の「例えば、サンプルアプリケーションproduction.rbの設定ファイルは」の箇所は、原文の「the sample application」については直後に示されるパス表記が"/home/ec2-user/environment/sample_app/"であることから日本語訳としては"sample_app"を当てて、全体として語順を整え「例えば、sample_appの設定ファイルproduction.rbは」とするのが好ましいように思われる。

1.3.3本文の「2.2.2では、このtoyアプリを使って」の「この」は不要と思われる。原文では"toy app"とあるが、これを"toy_app"とし「2.2.2では、toy_appを使って」とすることで文章の見通しが良くなるように思われる。 同じ段落に「サンプルアプリケーションでは、MVCの3つの要素をすべて扱いします。」という箇所があるが、まず「すべて扱いします。」は誤記と思われる。また"サンプルアプリケーション"の箇所は原文では"sample app"となっており、文脈的には"sample_app"と表記した上で「sample_appでは、MVCの3つの要素を」とするほうが文章の見通しが良くなるように思われる。

2章全般で sample_app を示す単語として「サンプルアプリケーション」を用いているが、読者にとっては hello_app も toy_app も sample_app も全て「サンプル」アプリケーションと言えるので、表記上の区別をつける方が良いように思われる。

2.2.2本文の「このようなマッピングするコードは」は「このようなマッピングをするコードは」とする方が好ましい。

6.2.4本文の「空でないメールアドレスであれば全て通ってしまいます」の箇所は「空でない文字列であれば全てメールアドレスとして通ってしまいます」の方がわかりやすいように思う。

6.2.4本文の「テストは redするはずです」は「テストはredのはずです」とする方が好ましい。

6.3.2本文の「まだテストは落ちたままになっているはずです。」は、原文との比較では「この時点でテストは落ちるようになっているはずです。」の方が好ましいように思われる。

6.3.3本文の「パスワードとパスワード確認に対して同時に代入」の箇所は「passwordとpassword_confirmationに対して同時に代入」の方が記述が明瞭であるように思われる。

7章冒頭の本文「基礎編である Learn Enough Ruby to Be Dangerousや Learn Enough Sinatra to Be Dangerous、 Learn Enough Rails to Be Dangerousなどのチュートリアルを」の箇所について、SinatraとRailsのLearn Enoughは404になる。原文にも記述は無い。

7.3.2本文で「また、有効なユーザー情報を送信しても新しいユーザーが実際に作成されることもありません。」とあるが、実際には有効なユーザー情報を送信(Create my account を押下)するとユーザーがデータベース上に作成される。動作としては save メソッドに成功した場合の処理が存在しないため処理がそこで停止し、ページ遷移などは起こらない。

8.1.2本文に「リスト 8.1のユーザー登録フォームを参考にして」とあるが、「図 8.1」の誤りと思われる。リンクそのものは正しく図 8.1を示している。

8.1.3本文に「空のnewアクションとdestroyアクションもついでに作成しておきましょう」とあるが、原文の along wigh の訳出として"作成しておきましょう"はnewアクションに関する限りは(newアクションは既にある状態なので)過剰な訳であるように思われる。

8.3にある注16の文中「(作成されていない場合)」とある箇所は原文の "(which it isn't)"の訳出と思われるが原文には照応する形で"(which we do)"という記述がある。日本語訳にはこの"(which we do)"が訳出されていないように見える。 どういう訳にすれば良いのかは自分の英語力ではわからない。

9.3.2本文の「以前作成した次のSessionヘルパーのテスト」は英語版との比較で誤訳と思われる。このヘルパーはこの時点で初めて作成されるように思われる。

9.3.2本文の「raiseを削除して元に戻す (リスト 9.31) ことで、リスト 9.33のテストがパスするはずです」は「raiseを削除して元に戻す (リスト 9.33) ことで、リスト 9.31のテストがパスするはずです」の誤記と思われる。

10.2.3本文の「ちなみに、最初にredirect文を実行しても、セッションが削除される点を覚えておくとよいでしょう。」は「ちなみに、転送用のURLを削除する動作はredirect文の後に置かれていても実行されるという点を覚えておくとよいでしょう。」と書くほうが振る舞いを理解しやすいように思われる。

10.4.1本文の「なお、admin属性のテストについては演習に回すことにします (10.4.1.2)。」について、10.4.1.2とあるのは10.4.1.1の誤記であるように思われる。

リスト11.7と11.8で、自動生成されるコードはUserMailer#という文字列になるはずだが、実際に自動生成される文字列はUser#だった。 すぐに全て書き換えることになるので影響は全く無い。

11.2.3本文の「生成されたパスワード設定のテスト」の箇所は、「生成されたパスワード再設定のテスト」の誤記と思われる。

11.2.4本文の「ただし、実際にメールが生成されるわけではないので」の箇所は、生成の意味がちょっとわかりにくい気がする。配信とか送達とかのほうが好ましいかも?

演習11.3.1「コンソール内で新しいユーザーを……有効化トークンはどのような値…」について、11.1.2「このコールバックがあることで、User.newで新しいユーザーが定義されると……が得られるようになります。」とあるので、User.newでトークンとダイジェストが得られると思ったけど、saveしないと得られなかった。 →6.1.3にあるnewとcreateの挙動の違いを考え合わせると11.1.2の記述は「User.createで新しいユーザーが定義されると」と書きたかったのかもしれない?ような気がする

11.3.2本文の「これは11.3.3.1の課題に回すことにします」の箇所は「これは11.3.3.2の課題に回すことにします」の誤記のように思われる。

11.3.3「のテスト (リスト 7.4.4) は既にあるので、7.33で書いたテストに」とあるのは「のテスト (7.4.4) は既にあるので、リスト 7.33で書いたテストに」の誤記であるように思われる。

13.2.3「単体テストを通して確認済みです (リスト 11.33)。」とあるが、リスト11.33は統合テストとして書かれている。

13.3.3「Micropostモデルに変更を加えた結果を、リスト13.46に示します。」とあるが、変更を加えているのはUserモデルでは?

13.3.3「このとき、@feed_itemsの各要素がMicropostクラスを持っていたため、RailsはMicropostのパーシャルを呼び出すことができました。」の箇所について、(原文が参照できないので推測ではあるが)「このとき、@feed_itemsの各要素はMicropostクラスを持っているため、RailsはMicropostのパーシャルを呼び出すことができます。」とする方が好ましいのではなかろうか。

13.3.4「(リスト 9.24で定義したデフォルトオプションと比較してみてください。)」という箇所について、リスト9.24での”デフォルトオプション”は引数の場合のことが書かれている。13.3.4の本文は || 演算子で与えるデフォルト値についてであり、参照として”引数のデフォルト値”の箇所を挙げるのは不自然に思える。どこか他の || 演算子に関する箇所を挙げたかったのではないか?よくわからない。

13.4.1「画像アップロードに対するテストは、演習に回すことにします (13.4.1.1)。」の箇所は(13.4.1.2)の誤記と思われる。

13.4.1演習2「13.4で実装した画像アップローダーをテスト」の箇所は13.4.1とする方が好ましいように思われる。

13.4.3演習2「テストスイートを走らせるとエラーメッセージが表示されるようになるはずです。」とあるが、テストはエラーにならない。

14.2.2演習3「統計情報に対してテストを書いてみましょう」とあるが、この演習の時点では test/fixtures/relationships.yml は空のはずなので、あまり適切な演習の設定ではないように思われる。

14.2.3の中で、リスト14.25時点でのリスト14.24のテストはredと記述されているが、この時点でリスト14.24のテストはgreenとなる。リスト14.25時点では show_follow.html.erb が無いが、テストで確認している内容が「未ログインの時はリダイレクトする」となっており、render 'show_follow'が呼ばれないためと思われる。

14.3.2 User.first.following_ids.join(',') の結果の最後尾にダブルクオーテーションが欠けている

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment