我無法弄清楚這個問題,即使它似乎並不複雜...類型錯誤:#<...>不是一個符號
我想打一個表格發送電子郵件在我的Rails應用程序,但是這一次不工作。我收到以下錯誤:
TypeError in MessagesController#create
:在發生 #<Message content: "test", email: "[email protected]", name: "test"> is not a symbol
錯誤:app/controllers/messages_controller.rb:10:in 'create'
1.here是我messages_controller
:
class MessagesController < ApplicationController
def new
@message = Message.new
end
def create
@message = Message.new(params[:message])
if @message.valid?
Messenger.send(@message).deliver
redirect_to root_url, notice: "Message sent! Thank you for contacting us."
else
render "new"
end
end
end
形式
new.html.erb
:<%= form_for @message do |f| %> <%= f.text_field :name %> <%= f.text_field :email %> <%= f.text_area :content, :rows => 5 %> <%= f.submit "Send Message" %> <% end %>
的
Message
模型中使用ActiveAttr
內置:class Message include ActiveAttr::Model attribute :name attribute :email attribute :content end
我
Messenger
郵件:class Messenger < ActionMailer::Base default :from => "[email protected]" def send(message) mail(:to => "[email protected]", :subject => "test") end end
謝謝您的幫助!
我猜錯誤在Messenger郵件程序的send.html.erb中。你可以分享send.html.erb的代碼嗎? –