gpt4 book ai didi

ruby-on-rails - rails : Calling a controller method from another controller -> NoMethodError

转载 作者:行者123 更新时间:2023-12-04 07:31:10 25 4
gpt4 key购买 nike

我正在使用 Devise gem 并拥有 2 个 Controller :

1: controllers/admin/mailings_controller.rb:

class Admin::MailingsController < ApplicationController
def self.send_emails
...
RegistrationsController.create
...
end
end

2: controllers/registrations_controller.rb:

class RegistrationsController < Devise::RegistrationsController
...
# POST
def create
# do some stuff
super
# do some stuff
end
...
end

但是当我执行时(在控制台中)...

Admin::MailingsController.send_emails

……我明白了……

"NoMethodError: undefined method `create' for RegistrationsController:Class"

为什么?以及如何解决这个问题?

rake routes

...显示没有问题:

user_registration POST  ->  /users(.:format)  ->  registrations#create

最佳答案

RegistrationsController.create 更改为 RegistrationsController.new.create

def create 更改为 def self.create

您在这里遇到的困惑是使用类方法,您的意思是调用实例方法。您可以通过在实例上调用方法或将方法更改为类方法来解决此问题。

关于ruby-on-rails - rails : Calling a controller method from another controller -> NoMethodError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12918336/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com