Gitpeach をRails 4.0.4に上げようとした時にテストがこけて2時間くらいハマってたのでメモ
{
id: "xxxx/yyyy",
labels: [
{name: "Backlog" , gitlab_label: nil , is_backlog_issue: true , is_close_issue: false, id: 1},
{name: "Ready" , gitlab_label: "ready" , is_backlog_issue: false, is_close_issue: false, id: 2},
{name: "In Progress", gitlab_label: "in progress", is_backlog_issue: false, is_close_issue: false, id: 3},
{name: "Done" , gitlab_label: nil , is_backlog_issue: false, is_close_issue: true , id: 4},
]
}
上記のようなparamsがあった時に、Arrayの中のHashに対しても ActionController::Parameters#permit が必須になった模様。(4.0.3まではチェックされなかった)
関連するリリースノート
https://github.com/rails/rails/blob/v4.0.4/actionpack/CHANGELOG.md
Converts hashes in arrays of unfiltered params to unpermitted params.
実際の修正
params.permit(labels: [:name, :gitlab_label, :is_backlog_issue, :is_close_issue, :disp_order, :id])
https://github.com/sue445/gitpeach/pull/6/files
まとめ
- リリースノート読め
- こまめなアップデート大事
- テスト大事