Как использовать collection_check_boxes вместе с сериализованным массивом

class Category < ActiveRecord::Base
  serialize :blocked_user_ids, Array
end

Посмотреть:

<%= collection_check_boxes(:category, :blocked_user_ids, User.all, :id, :full_name) %>

Идентификатор заблокированного пользователя хранится в сериализованном атрибуте. blocked_user_ids,

Передача отмеченных / снятых флажков для всех пользователей с collection_check_boxes в контроллер работает отлично.

Интересно, как показать флажок для каждого идентификатора, который хранится в blocked_user_ids массив?

1 ответ

Решение

<%= collection_check_boxes(:category, :blocked_user_ids, User.all, :id, :full_name) %>

затем стал бы

# Probably NOT a good idea to interate through all Users!
- User.all.each do |user|
  # assuming user has a `name` attribute
  %label
    = check_box_tag "category[blocked_user_ids][]",
      value = "#{user.id}",
      checked = (@category.block_user_ids.include? user.id.to_s),
      id: "blocked_user_ids_#{user.id}"
    "#{user.name}"
Другие вопросы по тегам