初めての投稿。 私は新しいユーザー のメールを送信しようとしていますが、私がフォームに入力すると、500の内部サーバーエラーとTypeErrorが表示されます。Heroku 500内部サーバーエラー、TypeError(SymbolからIntegerへの暗黙的な変換なし):
13msの(ActiveRecordの:4.9ms)で500内部サーバーエラーを完了エラーログ
はTypeError(整数にシンボルの無暗黙的な変換):
アプリ/コントローラ/ contacts_controller.rb:9:中[]' app/controllers/contacts_controller.rb:9:in
作成 '
私のContactsControllerに問題がありますか?
class ContactsController < ApplicationController
def new
@contact = Contact.new
end
def create
@contact = Contact.new(contact_params)
if @contact.save
name = params[:contact][:name]
email = params[:contact][:email]
body = params[:contact][:comments]
ContactMailer.contact_email(name, email, body).deliver
flash[:success] = "Message sent."
redirect_to new_contact_path
else
flash[:danger] = @contact.errors.full_messages.join(", ")
redirect_to new_contact_path
end
end
private
def contact_params
params.require(:contact).permit(:name, :email, :comments)
end
end
contact_email.html.erb
<!DOCTYPE html>
<html>
<head></head>
<body>
<p>You have received a message from the site's contact form, from
<%= "#{ @name }, #{ @email }." %></p>
<p><%= @body %></p>
</body>
</html>
奇妙なことは、私はcloud9サーバを経由して開発中で、私のコードを実行する場合、それは正常に動作が、Herokuのサーバを経由して生産して、それは試した後、私にエラーを与えることです私たちに完全に記入した連絡フォームを提出してください。 また、websiteに従ってコードする方法を学習しています。 問題はレッスン78です。
'params'を検査してください。 'params [:contact]'は 'Hash'の代わりに 'Array'を返します。 –
' params [:contact] 'は文字列か配列です。ハッシュではありません。 'params [:contact] [:name]'を実行したとき、 ':name'は期待していませんでした。 – SteveTurczyn
あなたの意見を投稿してください。それはあなたの 'params'を構築する上での問題の特定に役立ちます – SteveTurczyn