0
Rails 앱에서 연락처 양식을 설정하려고하는데 이메일을 보내고받는 데는 이메일 내용이 비어 있습니다. Rails 앱을 통해 보낸 메일이 비어 있습니다.
이
그래서 난 단지 내 이메일에Schreef het volgende
받고 있어요 순간에 이메일
!!!
%html
%body
%p
= @message.name
Schreef het volgende:
%p= @message.email
%p= @message.message
의 기관이다.
내 MessagesController
class MessagesController < ApplicationController
def create
@message = Message.new(message_params)
if @message.valid?
# TODO send message here
Messages.new_messages_email(@messages).deliver
redirect_to root_url, notice: "Message sent! Thank you for contacting us."
else
redirect_to root_url, notice: "Something went wrong, try again!"
end
end
private
def message_params
params.require(:message).permit(
:name,
:message,
:email
)
end
end
내 메시지 모델
class Message
include ActiveModel::Validations
include ActiveModel::Conversion
extend ActiveModel::Naming
attr_accessor :name, :email, :message
validates_presence_of :name
validates :email, :email_format => {:message => 'is not looking good'}
validates_length_of :message, :maximum => 500
def initialize(attributes = {})
attributes.each do |name, value|
send("#{name}=", value)
end
end
def persisted?
false
end
end
내 메시지 메일러,
class Messages < ActionMailer::Base
default from: "[email protected]"
def new_messages_email(message)
@message = Message.new
mail(to: '[email protected]',
subject: 'Iemand wilt contact met U')
end
end
그리고 형태
= form_for @message do |f|
.field
%br/
= f.text_field :name, :placeholder => "Naam"
.field
%br/
= f.text_field :email, :placeholder => "Emailadres"
.field
%br/
= f.text_area :message, :rows => 5, :placeholder => "Uw bericht"
.actions= f.submit "Verstuur bericht", :id => "submit"
이메일을 데이터베이스에 저장하지 않고이 작업을 설정하려고합니다. 필드에 넣은 콘텐츠가 이메일에없는 이유를 아는 사람이 있습니까?
답을 명확히 해 주셔서 감사합니다. 이제 작동 중입니다. 발견해야 할 오류 로그가 없기 때문에이 항목을 버그 수정하기가 상당히 어렵습니다. –
예. Ruby 세계에서는 원하는 인스턴스 변수 (예 :'@ bleh')를 호출 할 수 있으며 간단히'nil'을 반환합니다. 그래서'@ messages'에 대해서 불평하지 않았습니다. 또 다른 것은 당신이 어디에서 건 "message"를 사용하지 않고 단지'@message = Message.new'를 사용했다는 것입니다. static typed language (C, Java)에서는 컴파일러가'messages' 변수에 대해 불평하지만 Ruby는 동적이므로 런타임에 평가됩니다. – blelump