Qual técnica Ruby o Rails usa para fazer com que meus métodos de controlador renderizem visualizações?

Apenas estou curioso para saber se alguém usa a técnica Ruby para realizar o seguinte na estrutura do Rails.

Se eu não escrever, digamos, umindex Em um controlador Rails, o Rails ainda renderiza o arquivo de exibição de índice se o URL corresponder a essa rota. Isso faz sentido, porque meu controlador herda de uma classe pai, que deve ter sua própriaindex método.

No entanto, se euFaz definir umindex e apenas diz para definir uma variável de instância, ele ainda renderiza a exibição apropriada. Por exemplo:

def index
  @weasels = Weasel.all

  # If I omit this line, Rails renders the index anyway.
  # If this behavior is defined in the parent class's index method,
  # it seems that by overriding the method, my index wouldn't do it. 
  # I'm not explicitly calling super to get the method from 
  # ActionController::Base, but maybe Rails is doing something like that?
  render :index
end

Em puro Ruby, eu esperaria ter que ligarsuper para conseguir esse comportamento.

Eu assumo que o Rails usa algum tipo de técnica de metaprogramação para garantir que meus métodos de controlador chamarãosuper. Se sim, alguém pode explicar isso? Você pode apontar para o código fonte que faz isso?

Atualizar

Como Mladen Jablanović apontou, meu modelo mental inicial estava errado; o método do controlador normalmente não renderiza a visualização; em vez de,ambos o método do controladore a renderização da vista é chamada por algum código de estrutura. Isso é aparente porque eu posso criar um método de controlador com qualquer nome - por exemplo,search - e assearch a visualização será renderizada. Então, claramente, não estou substituindo um método pai nesse caso, e algum código de estrutura está analisando o nome do método do controlador e procurando a visualização correspondente.

Ainda assim, a estrutura deve ser capaz de detectar se o método do controlador já chamou ou nãorender. Então isso é outro pequeno mistério para mim.

questionAnswers(3)

yourAnswerToTheQuestion