Rails未初始化的常量错误

时间:2016-06-22 02:14:06

标签: ruby-on-rails ruby

在我的开发环境中,页面加载正常。在制作中,我收到了这个错误:

  

NameError(未初始化的常量EventTypesController :: EventType):     app / controllers / event_types_controller.rb:3:在`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>

知道我做错了吗?

当我在生产控制台中输入EventType时会发生这种情况:

  

IRB(主):004:0&GT;事件类型   NameError:未初始化的常量EventType           来自(irb):4           来自/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&#39;           来自/home/deploy/track/shared/bundle/ruby/2.2.0/gems/railties-4.2.6/lib/rails/commands/commands_tasks.rb:68:in console' 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!&#39;           来自/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要求&#39;           来自bin / rails

ByeBug结果:

  

的EventType   事件类型   EventType(id:integer,description:string,created_at:datetime,updated_at:datetime)   (byebug)

1 个答案:

答案 0 :(得分:0)

在开发中找不到EventType表,而不是生产。

您是否已成功将EventType表格迁移到生产?

$ bin/rails db:migrate RAILS_ENV=production