1
Hello, I did a CRUD with scaffold, and now I’m trying to add something else in the methods, I’m beginner in ruby on Rails,when entering Edit mode,presents me the following error and I can not understand where it is not initialized...
NameError (uninitialized constant SistUsuario::EmpresaSistUsuario):
  app/models/sist_usuario.rb:16:in `get_empresa_type_id'
  app/controllers/sist_usuarios_controller.rb:54:in `edit'
  app/controllers/application_controller.rb:115:in `do_with_current_user'
Below is my controller,model and view(form,which is loaded into the Edit view)
Controller
# encoding: utf-8
class SistUsuariosController < ApplicationController
  before_filter :require_user
  add_breadcrumb 'Administração > Sistema > Usuários ', nil
  def index
  end
  def grid_data
    select = "sist_usuarios.id, 
              sist_usuarios.susu_nome, 
              empresas.emp_fantasia, 
              sist_perfils.perf_desc, 
              sist_usuarios.susu_cpf, 
              sist_usuarios.susu_status"
    joins = ""
    conditions = ""
    group = ""
    joins = "INNER JOIN sist_perfils ON sist_perfils.id = sist_usuarios.sist_perfils_id
             INNER JOIN empresas ON empresas.id = sist_usuarios.susu_origem_id"
    conditions = ""
    conditions_search = ""
    if params[:sSearch] != nil && params[:sSearch].length > 0
      conditions_search += "(sist_usuarios.susu_nome like '%#{params[:sSearch]}%' 
                             OR sist_usuarios.susu_cpf like '%#{params[:sSearch]}%' 
                             OR empresas.emp_fantasia like '%#{params[:sSearch]}%' 
                             OR sist_perfils.perf_desc like '%#{params[:sSearch]}%')" 
    end
    @result = create_grid_json SistUsuario, select, conditions, conditions_search, "sist_usuarios.susu_nome", joins, group
    render layout: false, inline: @result
  end
  def show
    @sist_usuario = SistUsuario.find(params[:id])
    #respond_with(@sist_usuario)
    # @sist_usuario = SistUsuario.find(params[:id])
  end
  def new
    @sist_usuario = SistUsuario.new
  end
  def create
    @sist_usuario = SistUsuario.new(params[:sist_usuario])
    @sist_usuario.save
    respond_with(@sist_usuario)
  end
  def edit
    @sist_usuario = SistUsuario.find(params[:id])
    @empresa_origem_options = SistUsuario.get_empresa_type_id params[:id]
    #@enterprise_type_construcao_reconstrucao = Enterprise.get_enterprise_type_id_by_module params[:id],SystemModule::CONSTRUCAO_RECONSTRUCAO
    #@enterprise_type_conservacao = Enterprise.get_enterprise_type_id_by_module params[:id],SystemModule::CONSERVACAO
    #@enterprise_type_lvc = Enterprise.get_enterprise_type_id_by_module params[:id],SystemModule::LVC
  end
  def update
    #@sist_usuario = SistUsuario.new(params[:sist_usuario])
    respond_with(@sist_usuario)
    current_rels = EnterpriseTypeEnterprise.where("emp_fantasia = ?", @empresa.id)
    if @sist_usuario.update_attributes(params[:sist_usuario])
      unless current_rels.blank?
        current_rels.each do |r|
          r.mark_as_deleted
        end
      end
    end  
  end
  def destroy
    if @sist_usuario.destroy
      redirect_to sist_usuarios_url, :notice => "Exclusão realizada com sucesso."
    else
      flash[:error] = "Este registro já possui outros registros relacionados."
      render :action => 'index'
    end
  end
  #def edit
    #  @sist_usuario = id.find_by(params[:sist_usuario])
    #  respond_with(@sist_usuario)
  #end  
end
Model
#encoding: utf-8
class SistUsuario < ActiveRecord::Base
  belongs_to :empresa
  belongs_to :sist_perfil
  attr_accessible  :id, :susu_origem_id, :susu_nome, :susu_cpf, :sist_perfils_id, :susu_criptopassw, :susu_status, :emp_fantasia, :perf_desc
  # validates_presence_of :susu_origem_id, :message => "O campo Empresa de Origem não pode ser vazio."
  # validates_presence_of :susu_cpf, :message => "O campo CPF do usuráio não pode ser vazio."
  # validates_presence_of :susu_nome, :message => "O campo Nome do usuário não pode ser vazio."
  # validates_presence_of :sist_perfils_id, :message => "O campo Perfil do usuário não pode ser vazio."
  # validates_uniqueness_of :susu_cpf, :message => "Este CPF já está cadastradO. Verifique!!!"
  def self.get_empresa_type_id emp_fantasia
    #types = empresa.find(emp_fantasia).empresa
    types = EmpresaSistUsuario.all :joins => "INNER JOIN empresas ON empresas.emp_fantasia = situ_usuario_empresa.empresa_type_id",
                                         :conditions =>["situ_usuario_empresa.empresa_type_id = ?", emp_fantasia]
     result = nil           
     result = situ_usuario_empresa
      return result
    #end
  end  
end
Form
<%= render :partial => 'shared/shortcuts', :locals => {
        :type => SistUsuario,
        :show_new => false,
        :show_edit => false,
        :show_destroy => false,
        :additional_methods => { }
} %>
  <h2>Dados do Usuário</h2>
<%= form_for @sist_usuario do |f| %>
  <%= render "shared/form_errors", :target => @sist_usuario %>
    <%= field_set_tag do %>
      <%
        @empresa_origem_options = {:include_blank => "Selecione a empresa"}
        unless @empresa_origem.blank?
        @empresa_origem_options[:selected]= @empresa_origem
        end
        @perfil_origem_options = {:include_blank => "Selecione o perfil"}
        unless @perfil_origem.blank?
        @perfil_origem_options[:selected]= @perfil_origem
        end
      %>
      <p>
        <%= f.label :susu_origem_id, "Empresa de Origem", :class => "asterisk" %><br />
        <%= f.select :emp_fantasia, empresa.where("id = ?").collect {|p| [ p.emp_fantasia, p.id ] }, @empresa_origem_options %>
      </p>
      <p>
        <%= f.label :susu_nome, "Nome do usuário", :class => "asterisk" %><br />
        <%= f.text_field :susu_nome %>
      </p>
      <p>
        <%= f.label :susu_cpf, "Cpf do usuário", :class => "asterisk" %><br />
        <%= f.text_field :susu_cpf %>
      </p>
      <p>
        <%= f.label :susu_status, "Status" %><br />
        <%= f.text_field :susu_status %>
      </p>
    <% end %>
       <p>
        <%= f.label :sist_perfils_id, "Perfil do usuário", :class => "asterisk" %><br />
        <%= f.select :perf_desc, sist_perfil.where("id = ?").collect {|p| [ p.perf_desc, p.id ] }, @perfil_origem_options %>
      </p>
    <p>
      <%= render "shared/buttons_form", :f => f, :target => @sist_usuario, :return_to_path => "sist_usuarios" %>
    </p>
<%end%>
I apologize if I was not totally clear, I am available for any doubts... I thank you in advance