Rails 4: Разработка Invitable Unpermitted Parameter

Я использую гем Devise Invitable для приглашения пользователей, и после создания пользователя я создаю клиент с user_id равно id только что созданного пользователя

class User < ActiveRecord::Base
    after_create :create_client

    def create_client
        new_client = Client.new()
        new_client.user_id = self.id
        new_client.save
    end
end

Это работает, но как только я попытался добавить location_id к параметрам, я вижу:

Unpermitted parameter: location_id

Вот новый метод с location_id

def create_client
    new_client = Client.new()
    new_client.user_id = self.id
    new_client.location_id = self.location_id
    new_client.save
end

Я прочитал много ответов об этой проблеме, но не могу найти реального решения для внесения этого параметра в белый список. У кого-нибудь есть метод, который работает в Rails 4 с Devise 3.5?


person Jeremy Thomas    schedule 07.12.2016    source источник


Ответы (1)


Крайне важно внести в белый список параметры для :invite, а не только для :accept_invitation. Когда я добавил его в свой application_controller, сработало следующее:

def configure_permitted_parameters
    devise_parameter_sanitizer.for(:accept_invitation) << [:location_id]
    devise_parameter_sanitizer.for(:invite) << [:location_id]
end
person Jeremy Thomas    schedule 07.12.2016