Rails 4:设计不受欢迎的不允许参数

时间:2016-12-07 19:20:45

标签: ruby-on-rails ruby-on-rails-4 parameters devise devise-invitable

我正在使用Devise Invitable gem来邀请用户,在创建用户之后,我创建了一个user_id的客户端,该客户端等于刚创建的用户的id < / p>

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的方法

1 个答案:

答案 0 :(得分:2)

: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