Ruby on rails &引用;私有方法`新';呼叫消息:Class";
在我的控制器中有以下代码:Ruby on rails &引用;私有方法`新';呼叫消息:Class";,ruby-on-rails,ruby,Ruby On Rails,Ruby,在我的控制器中有以下代码: class MessagesController < ApplicationController def new @message = Message.new end def create @message = Message.new message_params if @message.valid? MessageMailer.contact_me(@message).deliver_now
class MessagesController < ApplicationController
def new
@message = Message.new
end
def create
@message = Message.new message_params
if @message.valid?
MessageMailer.contact_me(@message).deliver_now
redirect_to new_message_url, notice: "Message received, thanks!"
else
render :new
end
end
private
def message_params
params.require(:message).permit(:name, :email, :body)
end
end
请粘贴您的邮件模型。好的,您的邮件不是AR模型,是邮件,ActionMailer的新功能是私有的,请查看ActionMailer的正确用法。您将邮件命名为
Message
,然后尝试将其用作MessageMailer。请与控制器中的\u me
联系。现在,类Message
在两个位置打开(作为一个模型和一个mailer),具有不同的父类,并且具有奇怪性。修复类声明中的输入错误(将Message
更改为MessageMailer
,正如您显然打算命名的那样,应该修复)@simpletime非常感谢您,解决了它!!!
class Message < ApplicationMailer
def contact_me(message)
@body = message.body
mail to: "EMAIL@gmail.com", from: message.email
end
end
class Message
include ActiveModel::Model
attr_accessor :name, :email, :body
validates :name, :email, :body, presence: true
end