如何解决创建方法的Rails mail_form问题
使用本教程,我创建了一个应用程序,该应用程序使用mail_form在rails中发送电子邮件。然后,我想在我的应用程序中使用它。不幸的是,它不起作用。我注意到本教程使用了create(通过HomeController处理#创建为JS)方法,而我的应用程序使用了索引(通过StaticsController处理索引为JS)。我从控件中删除了它,但没有引起错误。我如何指向create方法?
statics_controller.rb
class StaticsController < ApplicationController
def contact
@contact = Statics.new(params[:statics])
end
def create
@contact = Statics.new(params[:statics])
@contact.request = request
if @contact.deliver
@contact = Statics.new
end
end
end
routes.rb
Rails.application.routes.draw do
get 'statics/index'
get 'statics/contact'
root "statics#index"
resources :pages
match ':controller(/:id(/:action))',:via=>[:get,:post]
resources :statics,only: [:contact,:new,:create]
end
模型statics.rb
class Statics < MailForm::Base
attribute :name,:validate => true
attribute :email,:validate => /\A([\w\.%\+\-]+)@([\w\-]+\.)+([\w]{2,})\z/i
attribute :message
# Declare the e-mail headers. It accepts anything the mail method
# in ActionMailer accepts.
def headers
{
:subject => "Your message has been sent.",:to => "kontakt@przemyslawprzewoznik.pl",:from => %("#{name}" <#{email}>)
}
end
end
表单-contact.html.erb
<%= form_for @contact,url: statics_contact_path,remote: true do |f| %>
<div class="col-md-6">
<%= f.label :name %></br>
<%= f.text_field :name,required: true %></br>
<%= f.label :email %></br>
<%= f.text_field :email,required: true %></br>
<%= f.label :message %></br>
<%= f.text_field :message,required: true %></br>
<%= f.submit "Wyślij",class: "btn btn-primary"%>
</div>
<% end %>
config / environment / development.rb
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors= true
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
address: 'smtp.gmail.com',port: 587,domain: 'gmail.com',user_name: ENV["GMAIL_EMAIL"],password: ENV["GMAIL_PASSWORD"],authentication: 'plain',enable_starttls_auto: true }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。