Manipulando has_and_belongs_to_many checkboxes com Rails 4 strong_parameters

Não temos mais permissão para usar attr acessível no Rails 4, agora a maneira de obter parâmetros de nossos formulários de criação e atualização é através de ** parâmetros fortes **.

// In the Restaurant model
class Restaurant < ActiveRecord::Base
has_and_belongs_to_many
:cuisines
end

// In the restaurant_controller
def restaurant_params
params[:restaurant].permit(
:name,
:address,
:phone,
{:cuisine_ids => []}
),
end

Dessa forma, quando chamamos params para nossos métodos de criação e atualização de restaurante, passamos a eles a função restaurant_params.

Rails lida automaticamente com a inserção e atualização de nossos modelos relacionados, neste caso, Cuisine, se passarmos um array cuisine_ids contendo os ids das instâncias de Cuisine.

Usando parâmetros fortes , precisamos definir que ids de cozinha é um array.

{ 
:cuisine_ids => []
}

Referências

Parâmetros fortes no Github

Caixas de seleção RailsCasts # 17 HABTM