簡體   English   中英

如何修復 ArgumentError:arguments 的編號錯誤(給定 0,預期為 1)- RoR

[英]How to fix ArgumentError: wrong number of arguments (given 0, expected 1) - RoR

我是初學者,在 Rails 上的郵件代碼 Ruby 中,我的代碼和他的測試之間出現錯誤“ArgumentError:arguments 的數量錯誤(給定 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:arguments 的錯誤編號(給定 1,預期 2..3)

我是新手..謝謝你的回答!

您是否可以看到錯誤消息告訴您您的方法之一正在等待參數但沒有傳遞給它。

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

如您所見,此方法需要執行一個utilisateur參數,但是當您在utilisateur_mailer_test.rb內部調用此方法時,您沒有向它傳遞任何內容: mail = UtilisateurMailer.account_activation

例如,您必須通過使用FactoryBotFaker的工廠創建用戶來指定utilisateur參數。

祝你好運: :)

我在從 Rails v5.2.3 升級到 v5.2.4 時遇到了這個問題,並通過升級以下 gem 來修復它

gem 'awesome_nested_set', '~> 3.2.0'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM