チーム開発。今日はancestryとクレジット決済用のgemを導入。
rails
form
date_select
= f.date_select :birthday, start_year: 1900, end_year: Time.current.year, use_month_numbers: true, default: { year: 1990, month: 1, day: 1 }
date_selectフィールドにした場合、paramsに名前(1i), 名前(2i), 名前(3i)という形で格納される。
Parameters: {"utf8"=>"✓", "authenticity_token"=>"edKyQetKU/KGujw==", "nickname"=>"", "birthday(1i)"=>"1990", "birthday(2i)"=>"1", "birthday(3i)"=>"1", "commit"=>"次へ進む"}
一旦、date型に変換してparamsにマージする。
birthday = Date.new(params[:"birthday(1i)"].to_i, params[:"birthday(2i)"].to_i, params[:"birthday(3i)"].to_i)
params.permit(:nickname).merge(birthday: birthday)
dateクラス
date = Date.new(2011, 4, 1)
Date.today
今日を取得
date = Date.today
.last()
Items.last
id順で最後のidのインスタンスを取得
Items.last(4)
最後の4つのインスタンスを取得
association
dependent: :destroy
親が削除された際の挙動を決める。
destroyの場合は削除。
has_many :shippings, dependent: :destroy
devise
session
ハッシュで情報を保持している。pramsと違い、ページ遷移でデータは消えない。
deviseの機能としては主にuser_idを持たせているが、単なるハッシュのため、任意の値を入れることができる。
session[:name] = "田中"
単なるハッシュなので以下でもOK.
session = {name: "satou", email: "ggg@ggg"}
ancestry
カテゴリ等の多階層にわたるテーブルの設計を行うgem。
インスタンスに対して.childrenを繰り返すことで多階層なテーブルを作成できる。
category = Category.create( name: "レディース")
child = category.children.create(name: "トップス")
child.children.create([{name: "Tシャツ/カットソー"},{name: "パーカー"}}])
逆に親を参照する際には.parentを使えば参照できる。
child.parent.name
github
rebase
ブランチの位置を指定したブランチの先頭へ移す。
コメント