Ich fange an, in ROR zu entwickeln. Der Benutzerverlauf, den ich gerade mache, ist eine Kontaktseite. Die Codes für die MVC sind nachfolgend aufgeführt:ROR nicht initialisierte Konstante ContatosController :: Contato
app/Controller/contatos_controller.rb
class ContatosController < ApplicationController
def new
@contato = Contato.new
end
def create
@contato = Contato.new(secure_params)
if @contato.valid?
flash[:notice] = "Mensagem enviada de #{@contato.name}."
redirect_to root_path
else
render :new
end
end
private
def secure_params
params.require(:contato).permit(:name, :subject, :email, :content)
end
end
app/models/Contato.rb
class Contato
include ActiveModel::Model
attr_accessor :name, :string
attr_accessor :subject, :string
attr_accessor :email, :string
attr_accessor :content, :string
validates_presence_of :name
validates_presence_of :subject
validates_presence_of :email
validates_presence_of :content
validates_format_of :email,
with: /\A[-a-z0-9_+\.]+\@([-a-z0-9]+\.)+[a-z0-9]{2,4}\z/i
validates_length_of :content, :maximum => 500
end
app/views/contatos/new.html.erb
<h3>Contato</h3>
<div class="form">
<%= simple_form_for @contato do |form| %>
<%= form.error_notification %>
<%= form.input :name, autofocus: true %>
<%= form.input :subject %>
<%= form.input :email %>
<%= form.input :content, as: :text %>
<%= form.button :submit, 'Submit', class: 'submit' %>
<% end %>
</div>
config/routes.rb
Rails.application.routes.draw do
resources :contatos, only: [:new, :create]
root 'static_pages#home'
end
Wenn ich versuche, http://localhost:3000/contatos/new zuzugreifen, wird folgende Fehlermeldung angezeigt wird:
NameError in ContatosController#new
uninitialized constant ContatosController::Contato
app/controllers/contatos_controller.rb:4:in `new'
Was ich über diesen Fehler gefunden ist, dass es Fehler in Beziehung steht , aber das scheint nicht mein Fall zu sein. Es ist wahrscheinlich ein dummer Fehler, aber ich konnte es nicht finden. Kann mir jemand helfen?
Wahrscheinlich findet der Autoloader Ihre Modelldefinition nicht, da Ihr Dateiname groß geschrieben ist ('Contato.rb'). Versuchen Sie es zu verringern. –
Sorry für die Verzögerung bei der Antwort, ich war bei der Arbeit. Vielen Dank für die Hilfe. Jetzt geht es. :) –