В моей среде разработки страница загружается отлично. В производстве, я получаю эту ошибку:Rails uninitialized constant error
NameError (uninitialized constant EventTypesController::EventType): app/controllers/event_types_controller.rb:3:in `index'
Вот мой контроллер:
class EventTypesController < ApplicationController
def index
@event_types = EventType.all
end
def update_event_type
event_type = EventType.find_by_id(params[:id])
if event_type.update(event_type_params)
flash[:notice] = 'Event Type Updated'
redirect_to :action => :index
end
end
def create_event_type
event_type = EventType.new(event_type_params)
if event_type.save
flash[:notice] = 'Event Type Created'
redirect_to :action => :index
end
end
def destroy_event_type
event_type = EventType.find_by_id(params[:id])
if event_type.destroy
flash[:notice] = 'Event Type Deleted'
redirect_to :action => :index
end
end
def event_type_params
params.require('eventtype').permit('description')
end
end
Вот мой Вид:
<h1>Event Types</h1>
<table>
<tr>
<th>Event Type Description</th>
<th></th>
</tr>
<% @event_types.each do |eventtype| %>
<% if params[:edit] && params[:edit] == eventtype.id.to_s %>
<tr>
<%=form_for :eventtype, :url => {:action => 'update_event_type', :id => eventtype } do |form| -%>
<td><%= form.text_field :description %></td>
<td><%= submit_tag("Update") %>
<%= link_to 'Cancel', {:action => :index} %></td>
<%end%>
</tr>
<%else%>
<tr>
<td><%= eventtype.description %></td>
<td><%=link_to "Edit", {:edit => eventtype.id} %>
<%=link_to "Delete", {:action => 'destroy_event_type', :id => eventtype.id},:method => :delete ,data: {confirm:'Are you sure you want to delete this event type?'} %></td>
</tr>
<%end%>
<%end%>
<% if !params[:edit] %>
<%=form_for :eventtype, :url => {:action => 'create_event_type' } do |form| -%>
<tr>
<td><%= form.text_field :description %></td>
<td><%= submit_tag("Add Event Type") %></td>
</tr>
<%end%>
<%end%>
</table>
Любая идея, что я делаю неправильно?
Это то, что происходит, когда я печатаю типСобытие в производстве консоль:
irb(main):004:0> EventType NameError: uninitialized constant EventType from (irb):4 from /home/deploy/track/shared/bundle/ruby/2.2.0/gems/railties-4.2.6/lib/rails/commands/console.rb:110:in
start' from /home/deploy/track/shared/bundle/ruby/2.2.0/gems/railties-4.2.6/lib/rails/commands/console.rb:9:in
start' from /home/deploy/track/shared/bundle/ruby/2.2.0/gems/railties-4.2.6/lib/rails/commands/commands_tasks.rb:68:inconsole' from /home/deploy/track/shared/bundle/ruby/2.2.0/gems/railties-4.2.6/lib/rails/commands/commands_tasks.rb:39:in
run_command!' from /home/deploy/track/shared/bundle/ruby/2.2.0/gems/railties-4.2.6/lib/rails/commands.rb:17:in<top (required)>' from bin/rails:4:in
require' from bin/rails
ByeBug Результаты:
EventType EventType EventType(id: integer, description: string, created_at: datetime, updated_at: datetime) (byebug)
Является ли ваш производственный код актуальным? Вы запустили 'rake db: migrate' в производстве? – mmichael
Да, я сделал, и я подтвердил, что таблица была создана в MySQL. Я также вручную добавлял записи через SQL. –
Это странно. Я бы посоветовал вам использовать отладчик (например, byebug) для проверки действия вашего индекса и проверить, определен ли класс 'EventType'. Мне кажется странным, что он будет работать локально, а не на производстве, если код и db обновлены. – mmichael