ruby-on-rails - 如何将 block 传递给 Devise create 方法?

标签 ruby-on-rails ruby devise

我正在使用devise token auth (本质上只使用 Devise)并且我试图在用户注册时保存资源对象之前修改它。 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                                                                            

知道为什么吗?

最佳答案

https://github.com/lynndylanhurley/devise_token_auth/blob/master/app/controllers/devise_token_auth/registrations_controller.rb

此基本 Controller 没有 block 调用。

可能您的意思是https://github.com/plataformatec/devise/blob/master/app/controllers/devise/registrations_controller.rb

它有 block 调用,但它不起作用,因为 DeviseTokenAuth::RegistrationsController 不会将 block 传递给它。

您需要一些其他方法来实现您想要的。

可能将代码从 DeviseTokenAuth::RegistrationsController 粘贴到您的自定义 Controller ,或者 fork DeviseTokenAuth gem 并修补它。

别忘了进行公关

关于ruby-on-rails - 如何将 block 传递给 Devise create 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28611599/

相关文章:

ruby-on-rails-4 - 在设计中以管理员身份编辑其他用户,ruby on rails

javascript - 根据对象属性在 View 中创建条件?

ruby-on-rails - 使用 Rails 3.1 的 Heroku 中特定于 SSL 的主机名

ruby-on-rails - 更改参数以使用 rails 和 sunspot 进行搜索

ruby-on-rails - 检查常量是否定义的正确方法是什么?

ruby - 如何创建一个类,其构造函数看起来像内置类的构造函数?

ruby-on-rails - 如何在设计中自动记住用户

ruby-on-rails - Rails3 & Git & Heroku - 开发/临时服务器

ruby-on-rails - 如何在 Ruby on Rails 中实现特定于部分的导航?

ruby-on-rails - 设计,ActionController::UnknownFormat