В моей contact.html, у меня есть этот кодРубин на Rails паров отсутствуют или значение пусто без использования модели
<div class="form">
<form name="email-form" method="POST">
<label class="field-label" for="name">Name:</label>
<input class="w-input text-field-2" id="name" type="text" name="name" data-name="Name" required="required">
<label class="field-label" for="Email">Email:</label>
<input class="w-input text-field-2" id="email" type="email" name="email" data-name="Email" required="required">
<label class="field-label" for="Subject">Subject:</label>
<input class="w-input text-field-2" id="subject" type="text" name="subject" data-name="Subject">
<label class="field-label" for="Content">Text Message:</label>
<textarea class="w-input text-field-2 area" id="content" name="content" data-name="Text Area" required="required"></textarea>
<div>
<input class="w-button button" type="submit" value="Submit Message" data-wait="Please wait...">
</div>
</form>
</div>
Это под моего контроллером
def contact
end
def send_mail
MessageMailer.new_message(contact_params).deliver
redirect_to contact_path, notice: 'Your messages has been sent.'
end
private
def contact_params
params.require(:contact).permit(:name, :email, :subject, :content)
end
под почтовыми программами/message_mailer.rb
class MessageMailer < ActionMailer::Base
default from: "[email protected]"
default to: "[email protected]"
def new_message(contact)
@contact = contact
mail subject: @contact.subject
end
end
и под моим new_message.text.erb этот код
Name: <%= @contact.name %>
Email: <%= @contact.email %>
Message: <%= @contact.content %>
Я отправить письмо, состоящее имя пользователя, адрес электронной почты и сообщение, которое и занесены НЕ сохраненные в базе данных. Когда я прохожу четыре параметра, как этот
def send_mail
MessageMailer.new_message(:name, :email, :subject, :content).deliver
redirect_to contact_path, notice: 'Your messages has been sent.'
end
он работал нормально, но мне сказали, чтобы использовать только один параметр, кажется, группа четыре параметра: name, email, subject, content
, как один (contact
)
Когда я напечатал info и нажмите кнопку отправки, я получаю это сообщение об ошибке param is missing or the value is empty: contact
Я предполагаю, что причиной этой ошибки является то, что мой def contact
пуст. Поэтому я добавил contact.new
и @contact=contact.new
и MessageMailer.new
, но эта ошибка возникает NoMethodError
Как я могу это исправить? Что я должен писать под своим def contact
?
contact.new не работает, то это будет Contact.new – ppascualv