array value
checkbox
を使用して送信しようとしたときに、array value
が届かないという問題がありました。ここで レールが配列値の強いパラメータを受け取りません
migration
ファイルです
:
create_table :users do |t|
t.string :email, null: false, default: ""
t.string :encrypted_password, null: false, default: ""
t.text :receive_mail, array: true, default: []
...
これは私がarray attributes
を置くfunction
です:
def configure_sign_up_params
devise_parameter_sanitizer.permit(:sign_up, keys: [
:address,
{receive_mail: []}
])
end
これはview
ファイルです:
<div class="field">
<%= f.collection_check_boxes(:receive_mail, [[0, "receive new article"], [1, "receive new ebook"]], :first, :last, include_hidden: false) do |b| %>
<%= b.label {b.check_box + b.text} %>
<% end %>
</div>
私が提出したとき、私はparams
をチェックし、それは"receive_mail"=>["0", "1"]
と値を持っていましたが、permited
をチェックしたときには常に"receive_mail"=>[]
を返します。
なぜ値を受け取っていないのかわかりませんでした。
ご協力いただければ幸いです。
私はそれを試してみましたが、うまくいきませんでした。 –