Я относительно новичок в программировании Ruby on Rails, и я получил эту ошибку при попытке использовать почтовый камень mail_form. The error is in the create function as can be seenНеопределенный метод true для (класса) mail_form gem
Я думаю, что я получил все настройки правильный путь:
Моя модель выглядит так:
class Contact < MailForm::Base
attribute :name, :validate => :true
attribute :email, :validate => /\A([\w\.%\+\-]+)@([\w\-]+\.)+([\w]{2,})\z/i
attribute :message, :validate => :true
attribute :nickname, :captcha => :true
def headers
{
:subject => "Contact Form",
:to => "(my email)",
:from => %("#{name}" <#{email}>)
}
end
end
Я не знаю, если вопросы, которые я пытаюсь создать сайт с только одна страница, поэтому у меня есть форма, чтобы создать новый контакт в welcome.html.erb контроллера страниц, но я определяю контакт:
def welcome
@admin = Admin.find(1)
@projects = Project.all.order('created_at DESC')
@contact = Contact.new
end
Al поэтому я думаю, что важно, что функция create (то есть ошибка) находится в контроллере контактов, я не знаю, было ли это нормально или будет лучше на том же контроллере, что и Contact.new (в приветствии функция страниц):
def create
@contact = Contact.new(params[:contact])
@contact.request = request
if @contact.deliver
redirect_to(root_path, :notice => "Thank you for contacting me. I will reply shortly!")
else
flash.now[:error] = 'Cannot send message.'
end
end
Я не тестировал в производстве еще только в разработке, возможно, это произойдет не в производстве, но я хочу знать, почему это происходит со мной, потому что я после tutorial из Mackenzie Child, и этого не случилось с ним, и у нас есть тот же код (за исключением того, что я пытаюсь сделать это только в одном представлении). Я не знаю, если это поможет, но это то, что у меня есть в моей конфигурации/сред/development.rb:
config.action_mailer.delivery_method = :letter_opener
Таким образом, в развитии Я использую гем letter_opener для отображения сообщений вместо отправки почты , хотя это не влияет на ошибку в ошибке, потому что ошибка появляется до того, как я установил драгоценный камень.
Я искал во многих местах и во всех вопросах переполнения стека, но ничего не нашел. Если ты поможешь мне, это будет решетка.
Спасибо.
EDIT:. я испытал в производстве с Heroku и возвращает ту же ошибку :(