Je pense que votre question est trop générale, mais voici quelques réflexions... en supposant que vous créez une application Rails conventionnelle
"Devrais-je envisager d'utiliser des vues ?"
Les vues sont ce que les utilisateurs voient dans les applications rails classiques. Ainsi, si vous voulez afficher des données à vos utilisateurs, utilisez les vues pour afficher les données qui sont disponibles dans les contrôleurs. Chaque action dans le contrôleur saisira les données des modèles, et aura une vue correspondante.
Ainsi, pour afficher les livres qui appartiennent à un utilisateur, vous pouvez disposer d'un contrôleur Books. Après qu'un utilisateur se soit connecté, vous avez une action "index" dans le contrôleur "Books" qui dit @user_books = @user.books. Dans ce cas, @user serait l'objet utilisateur de votre système d'authentification. Un utilisateur peut avoir plusieurs livres, et il est possible qu'un livre ait plusieurs utilisateurs. Ensuite, dans votre fichier views/books/index.html.erb vous avez quelque chose comme :
<ul>
<% @user_books.each do |b| %>
<li> <%= b.name %> </li>
<% end %>
</ul>
pour imprimer une liste de noms de livres.
Les jointures sont réalisées automatiquement par Rails, vous n'avez donc pas à vous en préoccuper pour l'instant. Mais si votre application devient vraiment grosse et que les requêtes sont compliquées, vous devrez peut-être réécrire les instructions SQL pour améliorer l'évolutivité....mais c'est évidemment un bon problème à avoir.
J'espère que cela vous aidera !