[英]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.