簡體   English   中英

錯誤的參數數目(3..6為0)

[英]wrong number of arguments (0 for 3..6)

我使用的是mailer gem,並且希望將問題發送到“用戶”收件箱,以便他們查看和回答問題。

我收到一個參數錯誤wrong number of arguments (0 for 3..6)錯誤wrong number of arguments (0 for 3..6) 它指向行@message = current_user.send_message.new(:subject => "You have a question from #{@question.sender_id}",

我嘗試使用發送消息實例,因為代碼的原始行@message = current_user.messages.new(:subject => "You have a question from #{@question.sender_id}"的問題@message = current_user.messages.new(:subject => "You have a question from #{@question.sender_id}"會將問題提交到通知表,但不連接到會話表。

問題負責人:

def create
  @question = Question.new(params[:question])
  if @question.save
    #Original code @message = Message.create
    @message = current_user.send_message.new(:subject => "You have a question from #{@question.sender_id}",
                           #Original code :sender_id
                           :notification_id => @question.sender_id,
                           #Original code :recipient_id
                           :receiver_id => @question.recipient_id,
                           :body => @question.question)

    @question.message = @message
    @question.save
    redirect_to questions_path, notice: 'Your question was saved successfully. Thanks!'
  else
    render :new, alert: 'Sorry. There was a problem saving your question.'
  end
end

之所以會出現錯誤,是因為send_message方法(由mailer gem提供)需要3..6參數,並且沒有向其發送任何參數。

另外,在看你的代碼,就好像你正試圖保存message記錄的question 因此,您的@message應該設置為:

@message = current_user.message.new(:subject => "You have a question from #{@question.sender_id}",
                           #Original code :sender_id
                           :notification_id => @question.sender_id,
                           #Original code :recipient_id
                           :receiver_id => @question.recipient_id,
                           :body => @question.question)
@question.message = @message
@question.save

請注意 ,我使用current_user.message.new而不是current_user.send_message.new

編輯

為了使用send_message ,您至少需要傳遞3個參數:

send_message(recipient, "Body", "subject")

recipient是接收消息的人。

我不確定為什么要在send_message之后鏈接new方法(因為通常會調用它來create a new instance of a Class )。

您可以按以下方式調用send_message

 @message = current_user.send_message(@question.recipient_id, @question.question, "You have a question from #{@question.sender_id}") 

暫無
暫無

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

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