如何将块传递给 Devise create 方法?
How do I pass a block to the Devise create method?
我正在使用 devise token auth(本质上只是使用 Devise)并且我试图在用户注册时保存之前修改 resource
对象。 create
方法,在源代码中定义并在用户文档中进行了解释,有一个 yield resource if block_given?
行,但是,以下代码没有按预期工作
class RegistrationsController < DeviseTokenAuth::RegistrationsController
def create
puts "this works"
super do |resource|
puts "this doesnt work"
end
end
end
知道为什么吗?
这个基础控制器没有块调用。
它有块调用,但它不会工作,因为 DeviseTokenAuth::RegistrationsController 不会将块传递给它。
你需要一些其他的方式来实现你想要的。
可能会将 DeviseTokenAuth::RegistrationsController 中的代码粘贴到您的自定义控制器,或者分叉 DeviseTokenAuth gem 并对其进行修补。
别忘了做 PR
我正在使用 devise token auth(本质上只是使用 Devise)并且我试图在用户注册时保存之前修改 resource
对象。 create
方法,在源代码中定义并在用户文档中进行了解释,有一个 yield resource if block_given?
行,但是,以下代码没有按预期工作
class RegistrationsController < DeviseTokenAuth::RegistrationsController
def create
puts "this works"
super do |resource|
puts "this doesnt work"
end
end
end
知道为什么吗?
这个基础控制器没有块调用。
它有块调用,但它不会工作,因为 DeviseTokenAuth::RegistrationsController 不会将块传递给它。
你需要一些其他的方式来实现你想要的。
可能会将 DeviseTokenAuth::RegistrationsController 中的代码粘贴到您的自定义控制器,或者分叉 DeviseTokenAuth gem 并对其进行修补。
别忘了做 PR