sadanora / guitar_scale_sketch

MIT License
1 stars 0 forks source link

modelで許可していないパラメータを送信しないようにする #197

Closed sadanora closed 1 year ago

sadanora commented 1 year ago

現象

/fingerings/newでフォームの送信を行うとログに以下が出る。

Unpermitted parameters: :startFret, :endFret. Context: { controller: FingeringsController, action: create, request: #<ActionDispatch::Request:0x000000011591c128>, 
params: 
  {
    "authenticity_token"=>"[FILTERED]",
    "fingering"=>{
      "title"=>"sample",
      "fingering_code"=>"[{\"position\":1,\"startFret\":1,\"endFret\":6,\"dots\":[]}]",
      "startFret"=>"1",
      "endFret"=>"6",
      "is_public"=>"0"
    },
    "commit"=>"登録する",
    "controller"=>"fingerings",
    "action"=>"create"}
  }

modelで許可していないパラメータが含まれてしまっているので、送信しないようにしたい。

改善方法案

name属性を空にする

name属性が空のフィールドの値は送信されないので、name属性を空で指定する。 https://developer.mozilla.org/ja/docs/Web/HTML/Element/input#name