Hola que tal, bueno ya con tu panorama un poco mas claro, creo que te estas confundiendo con los conceptos ( Al menos eso creo yo
)
Segun te entiendo, lo que deseas es que se mostrara, en el Front.
1.- Admin => Puede ver la información de todos los usuarios
2.- Usuario_normal => Solo podra ver unos campos
3.- Automotora => Solo vera sus campos
Aqui mediante el campo que tu determinaste para saber que rol le corresponde, en el front, tienes que validar que conecpto es el que tiene.
Ejemplo:
Código Rails:
Ver original<% if f.Role == "Admin" %>
<%= f.label :nombre %>
<%= f.label :email %>
<%= f.label :pass %>
<% else if f.Role == "Usuario_normal" %>
<%= f.label :nombre %>
<%= f.label :apellido%>
<%= f.label :telefono %>
<% else %>
<%= f.label :nombre %>
<%= f.label :email%>
<%= f.label :telefono %>
<% end %>
Esto lo tienes que ver en la vista, puesto que es lo que tu deseas mostrar.
Con respecto a la creacion de la tabla, tienes que determinar que es lo que vas a hacer.
Para mi es mejor tener todas las tablas separadas, con devise creaste un modelo ( Si es que estas usando devise ) este modelo puede contener los datos unicamente del rol. Generas un modelo para usuario, automora y del admin donde estaria la información que ocupas, en cada modelo.
Al grabar la información únicamente tienes que determinar que se va a grabar en base al rol.