我正在使用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的方法
答案 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