Vì vậy, tôi đã kiểm tra tất cả các câu trả lời hiện có cho các câu hỏi tương tự ở đây trên stackoverflow và ở nơi khác, nhưng không thể nhận được gem gem_form làm việc như quảng cáo.Lỗi sử dụng đường ray Mail_form gem: "Uninitialized constant Mailform"
Đây là thiết lập: Tôi đang cố gắng tạo biểu mẫu chụp khách hàng tiềm năng đơn giản cho trang web của công ty tôi. Tôi muốn gửi email các dữ liệu được thu thập bởi các hình thức vào tài khoản email của tôi mà không có một cơ sở dữ liệu phụ trợ và tôi nghĩ đó là những gì mail_form sẽ làm cho dễ dàng.
Đây là mô hình của tôi, ContactForm.rb
:
class ContactForm < Mailform::Base
attribute :name, :validate => true
attribute :email, :validate => /\A([\w\.%\+\-]+)@([\w]{2,})\z/i
attribute :file, :attachment => true
attribute :phone
attribute :referral
attribute :message
attribute :nickname, :captcha => true
def persisted?
false
end
def headers
{
:subject => "New Lead",
:to => "[email protected]",
:from => %("#{name}" <#{email}>)
}
end
end
Và đây là bộ điều khiển của tôi, contact_forms_controller.rb
:
class ContactFormsController < ApplicationController
def new
@contact_form = ContactForm.new
end
def create
begin
@contact_form = ContactForm.new(params[:contact_form])
@contact_form.request = request
if @contact_form.deliver
flash.now[:notice] = 'Thank you for your interest!'
redirect_to root_path
else
render :new
end
rescue ScriptError
flash[:error] = 'Sorry, something was wrong'
end
end
end
Và đây là quan điểm của tôi, contact_forms/new.html.erb
:
<%= form_for @contact_form do |f| %>
<div class="field">
<%= f.label :name %>
<%= f.text_field :name, :required => true %>(required)<br /><br><br>
</div>
<div class="field">
<%= f.label :email %>
<%= f.email_field :email, :required => true %>(required)
<br /><br><br>
</div>
<div class="field">
<%= f.label :phone %>
<%= f.phone_field :phone %><br /><br><br>
</div>
<div class="field">
How did you hear about us?:<br /> <%= f.text_field :referral
%><br /><br><br>
</div>
<div class="field">
Comments (What types of wine are you
interested in?):<br/<%= f.text_area :message %><br /><br><br>
</div>
<div class="field">
Submit: <%= f.submit "Create" %>
</div>
<% end %>
Tôi khá mới mẻ đối với đường ray và lập trình web nói chung, vì vậy nó có thể là tôi là m issing một cái gì đó thực sự cơ bản ở đây mà không được đề cập trong bất kỳ hướng dẫn trực tuyến. Tôi đã được tất cả các tài liệu mail_form và mọi hướng dẫn và câu trả lời tôi có thể tìm thấy và tôi vẫn nhận được lỗi.
Ồ vâng! Tôi cũng nhận được lỗi nếu tôi thử ContactForm.new trong giao diện điều khiển đường ray. Mọi sự trợ giúp sẽ rất được trân trọng!
Ồ vâng, Rails phiên bản 3.1.1
Tệp mô hình của bạn phải được đặt tên là 'contact_form.rb', đó là quy ước đường ray. Bạn cũng đang đề cập đến một lỗi, bạn có thể thêm nó vào câu hỏi của mình không? –