As 53 principais perguntas e respostas da entrevista sobre Ruby on Rails (2025)
Aqui estão as perguntas e respostas da entrevista sobre Ruby on Rails para calouros e também para candidatos experientes a desenvolvedores Ruby para conseguir o emprego dos sonhos.
1) Explique o que é Ruby on Rails?
- Ruby: É uma linguagem de programação orientada a objetos inspirada em PERL, Smalltalk, Eiffel, Ada, Basic e Lisp.
- Trilhos: É uma estrutura usada para construir aplicativos da web
2) Explique o que são bibliotecas de classes em Ruby?
As bibliotecas de classes em Ruby consistem em uma variedade de domínios, como tipos de dados, programação de threads, vários domínios, etc.
Download gratuito de PDF: Perguntas e respostas da entrevista sobre Ruby on Rails
3) Mencione qual é a convenção de nomenclatura no Rails?
- Variáveis: Para declarar variáveis, todas as letras são minúsculas e as palavras são separadas por sublinhados
- Aula e Módulo: Módulos e Classes usam MixedCase e não possuem sublinhado; cada palavra começa com uma letra maiúscula
- Tabela de banco de dados: O nome da tabela do banco de dados deve ter letras minúsculas e sublinhado entre as palavras, e todos os nomes das tabelas devem estar no plural, por exemplo, fatura_items
- Modelo: É representado por MixedCase ininterrupto e sempre possui singular com o nome da tabela
- Controlador: Os nomes das classes do controlador são representados no plural, de modo que OrdersController seria o controlador da tabela de pedidos.
4) Explique o que é “Yield” em Ruby on Rails?
Um método Ruby que recebe um bloco de código o invoca chamando-o com o “Yield”.
5) Explique o que é ORM (Modelo de Relacionamento de Objetos) no Rails?
ORM ou Object Relationship Model em Rails indica que suas classes são mapeadas para a tabela no banco de dados e os objetos são mapeados diretamente para as linhas da tabela.
6) Mencione qual é a diferença entre false e nil em Ruby?
Em Ruby, false é um objeto de FalseClass para representar um valor booleano, enquanto Nil é um objeto de NilClass que indica a ausência de um valor. Possui um object_id 4.
7) Mencione quais são os aspectos positivos do Rails?
Rails oferece muitos recursos como
- Metaprogramação: Rails usa geração de código, mas para o trabalho pesado ele depende de metaprogramação. Ruby é considerada uma das melhores linguagens para metaprogramação.
- Registro Ativo: Ele salva o objeto no banco de dados por meio do Active Record Framework. A versão Rails do Active Record identifica a coluna em um esquema e as vincula automaticamente aos objetos do seu domínio usando metaprogramação
- Andaimes: Rails tem a capacidade de criar scaffolding ou código temporário automaticamente
- Convenção sobre configuração: Ao contrário de outros frameworks de desenvolvimento, Rails não requer muita configuração, se você seguir cuidadosamente a convenção de nomenclatura
- Três ambientes: Rails vem com três ambientes padrão de teste, desenvolvimento e produção.
- Teste integrado: Ele suporta código chamado chicote e acessórios que criam casos de teste para escrever e executar.
8) Explique qual é a função dos subdiretórios app/controllers e app/helpers?
- Aplicativo/controladores: uma solicitação da web do usuário é tratada pelo Controlador. O subdiretório controller é onde o Rails procura encontrar classes de controladores
- App/helpers: O subdiretório do auxiliar contém todas as classes auxiliares usadas para auxiliar as classes de visualização, modelo e controlador.
9) Mencione qual é a diferença entre String e Símbolo?
Ambos agem da mesma maneira, apenas diferem em seus comportamentos opostos um ao outro. A diferença está no object_id, na memória e no ajuste do processo quando usados juntos. O símbolo pertence à categoria de objetos imutáveis, enquanto as Strings são consideradas objetos mutáveis.
10) Explique como o símbolo é diferente das variáveis?
O símbolo é diferente das variáveis nos seguintes aspectos
- É mais parecido com uma string do que com uma variável
- Em Ruby, a string é mutável, mas um símbolo é imutável
- Apenas uma cópia do símbolo precisa ser criada
- Os símbolos são frequentemente usados como correspondentes a enums em Ruby
11) Explique o que é Rails Active Record em Ruby on Rails?
O registro ativo do Rails é a camada de Mapeamento Objeto/Relacional (ORM) fornecida com o Rails. Ele segue o modelo ORM padrão como
- Mapa de tabela para aulas
- Mapeamento de linhas para objetos
- Mapeamento de colunas para atributos de objeto
12) Explique como o Rails implementa Ajax?
A página da web com tecnologia Ajax recupera a página da web do servidor que é nova ou alterada, ao contrário de outras páginas da web onde você precisa atualizar a página para obter as informações mais recentes.
Rails aciona uma operação Ajax das seguintes maneiras
- Alguns gatilhos de incêndio: O gatilho pode ser um usuário clicando em um link ou botão, os usuários induzindo alterações nos dados no campo ou em um formulário
- O cliente Web chama o servidor: Um método Java-script, XMLHttpRequest, envia dados vinculados ao gatilho para um manipulador de ações no servidor. Os dados podem ser o ID de uma caixa de seleção, o formulário inteiro ou o texto no campo de entrada
- O servidor processa: O manipulador de ações do lado do servidor faz algo com os dados e recupera um HTML fragmento para o cliente web
- O cliente recebe a resposta: O JavaScript do lado do cliente, que o Rails gera automaticamente, recebe o fragmento HTML e o utiliza para atualizar uma parte específica do código atual.
13) Mencione como você pode criar um controlador para o assunto?
Para criar um controlador para o assunto você pode usar o seguinte comando
C:\ruby\library> script ruby/gerar assunto do controlador
14) Mencione o que é Rails Migration?
Rails Migration permite que Ruby faça alterações no esquema do banco de dados, possibilitando usar um sistema de controle de versão para deixar as coisas sincronizadas com o código real.
15) Liste o que o Rails Migration pode fazer?
Rails Migration pode fazer o seguinte
- Criar tabela
- Soltar tabela
- Renomear tabela
- Adicionar coluna
- Renomear coluna
- Alterar coluna
- Remover coluna e assim por diante
16) Mencione qual é o comando para criar uma migração?
Para criar o comando de migração inclui
C:\ruby\application>ruby script/gerar migração nome_da_tabela
17) Explique quando o método self.up e self.down é usado?
Ao migrar para uma nova versão, auto.up método é usado enquanto auto.down método é usado para reverter minhas alterações, se necessário.
18) Mencione qual é a função do Rails Controller?
O controlador Rails é o centro lógico da aplicação. Ele facilita a interação entre os usuários, as visualizações e o modelo. Também realiza outras atividades como
- É capaz de encaminhar solicitações externas para ações internas. Ele lida com URL extremamente bem
- Ele regula os módulos auxiliares, que ampliam os recursos dos modelos de visualização sem sobrecarregar seu código
- Regula as sessões; que dá aos usuários a impressão de uma interação contínua com nossos aplicativos
19) Mencione qual é a diferença entre “HashWithIn Different” do suporte Active e “Hash” do Ruby?
A Hash classe na biblioteca principal do Ruby retorna valor usando um padrão “= =” comparação nas chaves. Isso significa que o valor armazenado para um símbolo a chave não pode ser recuperada usando a string equivalente. Enquanto o HashWithIndiferenteAccess trata as chaves de símbolo e as chaves de string como equivalentes.
20) Explique o que é Cross-Site Request Forgery (CSRF) e como o Rails é protegido contra ela?
CSRF é uma forma de ataque em que um hacker envia uma solicitação de página em seu nome para um site diferente, causando danos ou revelando seus dados confidenciais. Para se proteger contra ataques CSRF, você deve adicionar “proteger_de_falsificação” para o seu Controlador de aplicação. Isso fará com que o Rails exija um token CSRF para processar a solicitação. O token CSRF é fornecido como um campo oculto em cada formulário criado usando os construtores de formulários Rails.
21) Explique o que é Mixin no Rails?
Mixin em Ruby oferece uma alternativa para heranças múltiplas, usando módulos mixin que podem ser importados dentro de outra classe.
22) Explique como você define variável de instância, variável global e variável de classe em Ruby?
- A variável de instância Ruby começa com - @
- Variáveis de classe Ruby começam com - @@
- Variáveis globais do Ruby começam com — $
23) Explique como você pode executar uma aplicação Rails sem criar bancos de dados?
Você pode executar seu aplicativo descomentando a linha em Environment.rb
caminho => rootpath conf/environment.rb
config.frameworks = [ action_web_service, :action_mailer, :active_record]
24) Mencione qual é a diferença entre Observadores e Callbacks em Ruby on Rails?
- Observadores de trilhos: Observers é igual a Callback, mas é usado quando o método não está diretamente associado ao ciclo de vida do objeto. Além disso, o observador vive mais e pode ser desconectado ou anexado a qualquer momento. Por exemplo, exibir valores de um modelo na UI e atualizar o modelo a partir da entrada do usuário.
- Retorno de chamada do Rails: Retornos de chamada são métodos que podem ser chamados em determinados momentos do ciclo de vida de um objeto, por exemplo, podem ser chamados quando um objeto é validado, criado, atualizado, excluído. Um retorno de chamada tem vida curta. Por exemplo, executar um thread e fornecer um retorno de chamada que é chamado quando o thread termina
25) Explique o que é rake no Rails?
Rake é um Ruby Make; é um utilitário Ruby que substitui o utilitário Unix 'make' e usa um 'Rakefile' e 'arquivos .rake' para construir uma lista de tarefas. No Rails, Rake é usado para tarefas normais de administração, como migrar o banco de dados através de scripts, carregar um esquema no banco de dados, etc.
26) Explique como você pode listar todas as rotas de uma aplicação?
Para listar todas as rotas de uma aplicação você pode escrever rotas rake no terminal.
27) Explique o que é sweeper no Rails?
Os varredores são responsáveis por expirar ou encerrar caches quando o objeto do modelo é alterado.
28) Menciona o log que deve ser visto para reportar erros em Ruby Rails?
Rails reportará erros do Apache em log/Apache.log e erros do código Ruby em log/development.log.
29) Explique qual é a diferença entre andaimes dinâmicos e estáticos?
Andaime Dinâmico | Andaimes Estáticos |
|
|
30) Mencione qual é a função da coleta de lixo em Ruby on Rails?
As funções de coleta de lixo em Ruby on Rails incluem
- Permite a remoção dos valores do ponteiro que ficam quando a execução do programa termina
- Ele libera o programador de rastrear o objeto que está sendo criado dinamicamente em tempo de execução
- Dá a vantagem de remover os objetos inacessíveis da memória e permite que outros processos utilizem a memória
31) Mencione qual é a diferença entre redirecionar e renderizar em Ruby on Rails?
- Redirecionar é um método que serve para emitir a mensagem de erro caso a página não seja emitida ou encontrada no navegador. Diz ao navegador para processar e emitir uma nova solicitação.
- Render é um método usado para criar o conteúdo. A renderização só funciona quando o controlador está sendo configurado corretamente com as variáveis que precisam ser renderizadas.
32) Mencione qual é o propósito dos RJs no Rails?
RJs é um modelo que produz JavaScript que é executado em um bloco de avaliação pelo navegador em resposta a uma solicitação AJAX. Às vezes é usado para definir o JavaScript, o protótipo e os auxiliares fornecidos pelo Rails.
33) Explique o que é associação polimórfica em Ruby on Rails?
A Associação Polimórfica permite que um objeto ActiveRecord seja conectado a vários objetos ActiveRecord. Um exemplo perfeito de Associação Polimórfica é um site social onde os usuários podem comentar em qualquer lugar, seja vídeos, fotos, links, atualizações de status, etc. Não seria viável se você tivesse que criar um comentário individual como photos_comments, videos_comment e assim por diante. .
34) Mencione quais são os limites do Ruby on Rails?
Ruby on Rails foi projetado para criar uma aplicação web CRUD usando MVC. Isso pode fazer com que o Rails não seja útil para outros programadores. Alguns dos recursos que o Rails não suporta incluem
- Chave estrangeira em bancos de dados
- Vinculando a vários bancos de dados de uma só vez
- serviços da web de sabão
- Conexão a vários servidores de banco de dados ao mesmo tempo
35) Mencione qual é a diferença entre chamar super() e super call?
- super(): Uma chamada para super() invoca o método pai sem nenhum argumento, como presumivelmente esperado. Como sempre, ser explícito no seu código é uma coisa boa.
- super chamada: uma chamada para super invoca o método pai com os mesmos argumentos que foram passados para o método filho. Portanto, ocorrerá um erro se os argumentos passados para o método filho não corresponderem ao que o pai está esperando.
36) Explique sobre Dig, Float e Max?
- A classe float é usada sempre que a função muda constantemente.
- Dig é usado sempre que você deseja representar um ponto flutuante em dígitos decimais.
- Max é usado sempre que há uma grande necessidade de Float.
37) Explique como podemos definir expressões regulares Ruby?
A expressão regular Ruby é uma sequência especial de caracteres que ajuda a combinar ou encontrar outras strings. Uma expressão regular literal é um padrão entre delimitadores arbitrários ou barras seguidas por %r.
38) Explique qual é o operador definido?
O operador Define indica se uma expressão passada está definida ou não. Se a expressão estiver definida, ela retorna a string de descrição e se não estiver definida, retorna um valor nulo.
39) Liste alguns recursos do Ruby?
- Formato livre – Você pode começar a escrever a partir do programa a partir de qualquer linha e coluna
- Diferencia maiúsculas de minúsculas – As letras maiúsculas e minúsculas são distintas
- Comentários – Qualquer coisa seguida por um sem aspas #, até o final da linha em que aparece, é ignorado pelo intérprete
- Delimitadores de instrução – Várias instruções em uma linha devem ser separadas por ponto e vírgula, mas não são obrigatórias no final de uma linha.
40) Menciona os tipos de variáveis disponíveis na classe Ruby?
Os tipos de variáveis disponíveis na classe Ruby são,
- Variáveis Locais
- Variáveis globais
- Variáveis de classe
- Variáveis de instância
41) Explique como você pode declarar um bloco em Ruby?
Em Ruby, o código do bloco é sempre colocado entre colchetes ({}). Você pode invocar um bloco usando “instrução de rendimento”.
42) Explique qual é a diferença entre a instrução put e putc?
Ao contrário da instrução puts, que exibe a string inteira na tela. A instrução Putc pode ser usada para gerar um caractere por vez.
43) Explique o que é uma biblioteca de classes em Ruby?
As bibliotecas de classes Ruby consistem em uma variedade de domínios, como programação de threads, tipos de dados, vários domínios, etc. Essas classes oferecem recursos flexíveis em um alto nível de abstração, dando a você a capacidade de criar scripts Ruby poderosos, úteis em uma variedade de problemas. domínios. Os seguintes domínios que possuem bibliotecas de classes relevantes são,
- Programação GUI
- Programação de rede
- Programação CGI
- Processamento de texto
44) Em Ruby explica sobre o operador definido?
O operador definido informa se uma expressão passada está definida ou não. Se a expressão não estiver definida, ela retornará nulo e, se a expressão estiver definida, retornará a string de descrição.
45) Mencione qual é a diferença de escopo para essas duas variáveis: @@name e @name?
A diferença no escopo dessas duas variáveis é que:
- @@name é uma variável de classe
- @name é uma variável de instância
46) Mencione qual é a sintaxe do Ruby collect Iterator?
A sintaxe para Ruby collect Iterator coleção = coleção.collect.
47) No código Ruby, muitas vezes é observado que o codificador usa uma forma abreviada de usar uma expressão como ordem.map(&:method_name) em vez de array.map { |element| elemento.nome_do_metodo }. Como esse truque realmente funciona?
Quando um parâmetro é passado com “&” na frente dele. Ruby chamará to_proc nele na tentativa de torná-lo utilizável como um bloco. Portanto, o símbolo to_Proc invocará o método do nome correspondente em tudo o que for passado para ele. Ajudando assim nosso truque de taquigrafia a funcionar.
48) Explique o que é interpolação em Ruby?
Ruby Interpolation é o processo de inserção de uma string em um literal. Ao colocar um Hash (#) entre {} colchetes de abertura e fechamento, pode-se interpolar uma string no literal.
49) Mencione qual é a notação usada para denotar variáveis de classe em Ruby?
Em Rubi,
- Uma constante deve começar com uma letra maiúscula e não deve ser definida dentro de um método
- Um local deve começar com o sinal _ sublinhado ou uma letra minúscula
- Uma variável global deve começar com o sinal $. Um global não inicializado tem o valor “nil” e deve aumentar um aviso. Pode ser consultado em qualquer lugar do programa.
- Uma variável de classe deve começar com double @@ e deve ser inicializada antes de ser usada na definição de um método
50) Mencione qual é a diferença entre Procs e Blocks?
A diferença entre Procs e Blocos,
- Block é apenas parte da sintaxe de um método enquanto proc possui as características de um bloco
- Procs são objetos, blocos não são
- No máximo um bloco pode aparecer em uma lista de argumentos
- Apenas o bloco não pode ser armazenado em uma variável enquanto o Proc pode
51) Mencione qual é a diferença entre aspas simples e aspas duplas?
Strings entre aspas simples não processam códigos de escape ASCII e não fazem interpolação de strings.
52) Mencione qual é a diferença entre uma gem e um plugin em Ruby?
- Gema: Uma gema é apenas um código Ruby. Ele é instalado em uma máquina e está disponível para todos os aplicativos Ruby em execução nessa máquina.
- Plugar: O plug-in também é um código Ruby, mas é instalado na pasta do aplicativo e está disponível apenas para esse aplicativo específico.
53) Mencione qual é a diferença entre estender e incluir?
O “include” disponibiliza os métodos do módulo para a instância de uma classe, enquanto o “extend” disponibiliza esses métodos para a própria classe.
Essas perguntas da entrevista também ajudarão em sua viva (oral)
O rendimento não é função. É a palavra-chave Ruby usada para executar o bloco.
Especificamente, o rendimento passará o controle do thread (provavelmente Main.thread) para o bloco que foi passado explicitamente como um parâmetro, ou seja, def my_method(&my_block) Ou, alternativamente, um bloco poderia ter sido passado implicitamente, como
minha_classe.meu_metodo fazer
# código neste bloco será gerado dentro do método de chamada
final
muito bom... continue assim
Ótimo conteúdo!
na questão nº 6, em Ruby, não existe classe “Booleana”, portanto não existe “tipo Booleano”. Existem apenas TrueClass e FalseClass.
Está atualizado.
Bom
Bom estado, com sinais de uso
na verdade, Thread.main… que pena :)
Ruby não é inspirado em Python, foi inspirado nos seguintes (Perl, Smalltalk, Eiffel, Ada, BASIC e Lisp)
Está atualizado.
sim…
Belo vislumbre de Ruby e Rails
6) nil.object_id é igual a 8