Head First Rails 第1版を使用した場合における注意点
はじめに
Head First Rails 第1版を使用した場合における注意点 Ruby 2.0.0 rails4でやった場合
p7
rails tickets を
以下のように読み替える rails new tickets
P8
cd tickets
ruby script/server
を次のように読み替える
cd tickets
rails server (もしくは省略して rails sでもよい)
P12
ruby script/generate scaffold ticket name:string seat_id_seq:string address:text price_paid:decimal email_address:string
は以下のように読み替える
rails generate scaffold ticket name:string seat_id_seq:string address:text price_paid:decimal email_address:string
rails generate は rails g 省略出来る
P27
編集するHTMLファイルについて new と Editは_form.html.erb を使っている。のでそれを書き換えればOK
P36、P35
Railsが生成したコードが異なる。def self.upとself.downを使ったコードではなく、以下のようなコードになった。
class AddPhoneToTickets < ActiveRecord::Migration
def change
add_column :tickets, :phone, :string
end
end
P36,37
Rails4からのStrong Parameters という新機能で、入力されたデータはホワイトリストによって追加・変更する項目がデフォルトで制限されるようになりました。そのおかげ、scaffoldした項目は自動的にホワイトリストに追加されるが、追加したphoneはホワイトリストに登録されてないため値を入れても作成・変更出来ない状況が発生します。
参考URL:≫ Rails4 の Strong Parameters でリクエストパラメータを検証する TECHSCORE BLOG
なので、ホワイトリストにphoneを以下のようにして追加する。
vi app/controllers/tickets_controller.rb
70 # Never trust parameters from the scary internet, only allow the white list through.
71 def ticket_params
72 params.require(:ticket).permit(:name, :seat_id_seq, :address, :price_paid, :email_address)
73 end
これを以下のように書き換える。
70 # Never trust parameters from the scary internet, only allow the white list through.
71 def ticket_params
72 params.require(:ticket).permit(:name, :seat_id_seq, :address, :price_paid, :email_address, :phone)
73 end