Cómo mostrar datos de múltiples modelos en una sola vista en Ruby on Rails

Si comprende cómo hacer que los datos de un solo modelo sean accesibles en una vista, comprende cómo hacer que los datos de muchos modelos sean accesibles en una vista.

Un controlador no está estrictamente asociado con su modelo correspondiente. Puede crear una instancia de un modelo que no se corresponda con ese controlador, desde ese controlador.

En un article_controller, por ejemplo, tienes:

índice de definición
@articles = Article.all
fin

Ahora, en su archivo articles / index.html.erb, puede acceder a todos sus artículos con la instancia @articles.

Si también desea una instancia @teams, que es una instancia del modelo Team, accesible en el mismo archivo de vista, edite su article_controller de esta manera:

índice de definición
@articles = Article.all
@teams = Team.all
fin

Google Ruby guía y dale una lectura completa. Se volverá muy claro.

Darle una oportunidad; verás ;).

Agregando a la respuesta de Mark Doble;

Si me encuentro con una situación como la suya, para presentar cosas de diferentes modelos en una sola vista, crearé un controlador adicional para ese propósito para mantener las cosas limpias, y lo llamaré algo así como FrontPageController.

De esa manera, los artículos ArticlesController y TeamsController (ejemplos de la respuesta de Mark) quedarán ordenados.

Supongo que estás confundido porque estás trabajando con el andamio normal. Por ejemplo, si ejecutó `rails generate scaffold Post`. Tendría un PostController con esto.

índice de definición
@posts = Post.all
fin

Pero en realidad puede extender eso para incluir otras cosas también. De hecho, incluso podría hacer referencia directa a otros modelos en las vistas. No hay nada que le impida hacer referencia a otros modelos en una acción.

índice de definición
@posts = Post.all
@teams = Team.all
fin

# O directamente en la vista

<% Team.all.each do | team | %>
<% = team.name%>
<% end%>