めも帖

「めも帖」代わりにダラダラと書いていったり、めもしたりしているだけです。

Rails4 の has_many 時に Strong Parameters はまる

Rails 4 で、has_many のアソシエーション(多対多)が設定してあるときに、関連するモデルの保存できませんでした。 なんで?と思い調べてみました。Strong Parameters が怪しいかなあ?とは思っていたのですが、設定したのに動かない。

最初に設定した方法

def plan_params
    params.require(:plan).permit(:name, foo_ids)
end

やってみると...

Unpermitted parameters:  foo_ids

エラーが出てる。無許可? 調べてみると、どうも、配列の場合は空の配列を設定するらしい

配列に対応した Strong Parameters の設定

def plan_params
    params.require(:plan).permit(:name, foo_ids: [])
end 

対応できました。