如何修复ArgumentError:参数数量错误(给定0,应为1)-RoR

我是新手,在邮件代码Ruby on Rails中,我的代码和他的测试之间出现错误“ ArgumentError:参数数量错误(给定0,应为1)”。

错误:

UtilisateurMailerTest#test_account_activation:

ArgumentError: wrong number of arguments (given 0,expected 1)
    app/mailers/utilisateur_mailer.rb:8:in `account_activation'
    test/mailers/utilisateur_mailer_test.rb:6 

utilisateur_mailer_test.rb:

class UtilisateurMailerTest < actionmailer::TestCase
  test "account_activation" do
           mail = UtilisateurMailer.account_activation
(line6)    assert_equal "account activation",mail.subject
           assert_equal ["to@example.org"],mail.to
           assert_equal ["from@example.com"],mail.from
           assert_match "Hi",mail.body.encoded
  end

utilisateur_mailer.rb: ........

Line8:
  def account_activation(utilisateur)
    @utilisateur = utilisateur
    mail to: utilisateur.email,subject: "activation du compte"
  end

我尝试删除“,mail.subject”和主题:“ activation du compte”,它返回:ArgumentError:参数数量错误(给定1,预期为2..3)

我是新手..谢谢您的回答!

zxcvbnmasd1234 回答:如何修复ArgumentError:参数数量错误(给定0,应为1)-RoR

您可以看到错误消息,告诉您您的方法之一正在等待参数,但是没有传递给它。

在您的utilisateur_mailer_test.rb中,您可以看到您正在调用在account_activation中创建的方法utilisateur_mailer.rb

如您所见,此方法需要执行一个 utilisateur 参数,但是当您在utilisateur_mailer_test.rb内部调用此方法时,没有向其传递任何信息: mail = UtilisateurMailer.account_activation

您必须在此处指定 utilisateur 参数,例如,使用FactoryBotFaker通过工厂创建用户。

祝你好运! :)

,

从Rails v5.2.3升级到v5.2.4时遇到了这个问题,并通过升级以下gem来解决了此问题

gem 'awesome_nested_set','~> 3.2.0'
本文链接:https://www.f2er.com/3163874.html

大家都在问