gpt4 book ai didi

ruby-on-rails - 在 Controller 中调用模型自定义方法

转载 作者:太空宇宙 更新时间:2023-11-03 16:46:38 25 4
gpt4 key购买 nike

我试图在我的 Controller 中调用我在模型中创建的自定义方法,但是当我提交指向 Controller 操作的表单时,出现以下错误:

undefined method `add_manager' for #Rally:0x4c1fa90

def add_manager
if @rally.add_manager(manager_params)
format.html { redirect_to @rally, notice: 'Manager successfully added.' }
format.json { head :no_content }
else

这是我的代码

拉力赛.rb

def self.add_manager(params)
user = User.where(:email => params[:email])
rally.users << user
end

rallies_controller.rb

  def add_manager
if @rally.add_manager(manager_params)
format.html { redirect_to @rally, notice: 'Manager successfully added.' }
format.json { head :no_content }
else
format.html { render action: 'edit' }
format.json { render json: @rally.errors, status: :unprocessable_entity }
end
end

到目前为止我已经完成的测试:

  • 检查@rally 是否设置:有效
  • 检查列出的可用方法:add_manager 未列出
  • 在 Rails 控制台中测试了所有命令:有效

知道我做错了什么吗?

最佳答案

改变类方法:

def self.add_manager(params)

实例方法:

def add_manager(params)

因为@rally 是您的 Rally 类的一个实例

(在上面的评论中回答 - 从未回答的列表中删除)

关于ruby-on-rails - 在 Controller 中调用模型自定义方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31689465/

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