『現場で使える Ruby on Rails 5速習実践ガイド』サポートサイト
本書のサンプルファイルです。下記からダウンロードしてください。
Chapterごとに、完成版のファイルがダウンロードできるようになっています。
本書では、基本的には、前のChapterが完成していることを前提として次のChapterが始まります。ですので、たとえばChapter4から始めたいときには、Chapter3の完成ファイルをダウンロードして使ってください。
・Chapter3の完成ファイル
・Chapter4の完成ファイル
・Chapter5の完成ファイル
・Chapter6の完成ファイル
・Chapter7の完成ファイル
・Chapter8の完成ファイル
補足情報
WSL環境を利用していると、P.205の「bundle exec rspec spec/system/task_spec.rb」にて以下のエラーが出ることがあります。
Selenium::WebDriver::Error::UnknownError:
この場合は、以下の方法をご覧いただき、WSLにchromedriverをインストールしてください。
https://gist.github.com/upinetree/fb71a947cc100e7918b7b280485d620c
※『対策A. chromedriver-helper を使わずに、自分で chromedriver を設定する』を実施してください。
訂正情報
以下の誤りがありました。お詫びの上訂正します。
誤(2つ目): < person.millionaire?
正(2つ目): < person.billionaire?
● P.036の2つ目のプログラムの囲み(2刷で修正済み)
誤:
def name(full: true, with_age: true) n = if full "#{given_name} #{family_name}" else given_name end n << "(#{age})" if with_age end
正:
def name(full: true, with_age: true)
n = if full
"#{given_name} #{family_name}"
else
given_name
end
n << "(#{age})" if with_age
n ---- (ここを追加してください)
end
● P.091の1つ目のプログラム後半(2刷で修正済み)
誤: --output-document=config/locales/ja.yml
正: --output-file=config/locales/ja.yml
● P.152の最後のプログラム囲みの見出し(2刷で修正済み)
誤: app/models/users.rbl
正: app/models/user.rb
● P.153の1つ目の 「Railsコンソールで実行」の囲み(2刷で修正済み)
誤:
> User.new(name: 'ユーザー', email: 'sample@example.com', password: 'password',password_confirmation: 'password').save => true
正:
> user = User.new(name: 'ユーサ゛ー', email: 'sample@example.com', password: 'password', password_confirmation: 'password') > user.save => true
● P.155の表(「URLの例」の3行目から7行目)
誤:
/users/17/edit /users/17 /users /users/17 /users/17
正:
/admin/users/17/edit /admin/users/17 /admin/users /admin/users/17 /admin/users/17
● P.156のプログラム「app/controllers/admin/users_controller.rb」の10行目(3刷で修正済み)
誤:redirect_to admin_users_path, notice: "ユーザー「#{@user.name}」を登録しました。"
正:
redirect_to admin_user_url(@user), notice: "ユーザー「#{@user.name}」を登録しました。"
● P.158のプログラム「def update」の下から3行目(3刷で修正済み)
誤: render :new
正: render :edit
● P.171の一番最後の本文(2刷で修正済み)
誤: ?を次のように変更してusr_idを代入するやり方でしょう。
正: ?を次のように変更してuser_idを代入するやり方でしょう。
● P.312「7-6-1 タスクをCSV出力(エクスポート)する」の本文2行目(2刷で修正済み)
誤:次のようなto_csvというクラスメソッド
正:次のようなgenerate_csvというクラスメソッド
● P.300の本文4行目から6行目と、「app/mailers/application_mailer.rb」部分(7刷で修正済み)
誤:
ところで、アプリケーションから複数種類のメールを送信する場合には、どのメールもfromは同じにしたいということが良くあります。このような場合は、デフォルト値を指定しておくこともできます。taskleafにおいても将来に備えてfromを次のようにデフォルト指定しておくことにしましょう(❷)。
class TaskMailer < ApplicationMailer default from: 'taskleaf@example.com' --- ❷ def creation_email(task) @task = task end
正:
ところで、アプリケーションから複数種類のメールを送信する場合には、どのメールもfromは同じにしたいということが良くあります。ApplicationMailer にデフォルト値が設定されているので、taskleafにおいても将来に備えてfromを次のようにデフォルト指定を設定しておきましょう(❷)。
class ApplicationMailer < ActionMailer::Base default from: 'taskleaf@example.com' --- ❷ layout 'mailer' end
● P.312の2つ目のプログラム「def self.generate_csv」部分(2刷で修正済み)
誤:
def self.generate_csv CSV.generate(headers: true) do |csv| csv << csv_attributes all.each do |task| csv << csv_attributes.map{|attr| task.send(attr) } end end
正:
def self.generate_csv
CSV.generate(headers: true) do |csv|
csv << csv_attributes
all.each do |task|
csv << csv_attributes.map{|attr| task.send(attr) }
end ---- (ここを追加してください)
end
end
● P.338の一番下のプログラム「app/views/tasks/destroy.js.erb」の4行目(4刷で修正済み)
誤:
message.innerText = 'タスク「<%= @task.name %>」を削除しました。残りのタスクは<%= current_user.tasks.count %> 件です。';
正:
message.innerText = 'タスク「<%= current_user.tasks.count %>」を削除しました。残りのタスクは<%= current_user.tasks.count %>
件です。';