У меня была проблема, что он не получил array value
, когда я попытался отправить array value
, который я использовал checkbox
.рельсы не получают значение массива сильный параметр
Вот мой код:
Это 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: []
...
Это function
, который я поставил array attributes
:
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"=>[]
.
Я не понял, почему он не получил значение.
Любая помощь будет оценена положительно.
Спасибо за ваш ответ, я попробовал, но это не сработало. –