- he fixed Directory / in the answer already *
Your own solution is the worst advice possible. Directory directive represents the directory of the filesystem. What actually solved your issue is setting "AllowOverride none" in which probable a rogue .htaccess file was changing your permissions at first.
Set directory in your virtualhost to your documentroot and if you are the admin, don't use .htaccess, since as you can see, if you don't perfectly know what you are doing it will lead you to confusion and mistakes, so the real answer is, set directory to the documentroot and set allowoverride none, control the access within the virtualhost, all in one place for easy checking.
<VirtualHost *:80>
ServerAdmin myanme@myserver.net
ServerName myserver.net
DocumentRoot "/home/utils/rails/public"
<Directory "/home/utils/rails/public">
AllowOverride None
Require all granted
</Directory>
LogLevel warn
ErrorLog ${APACHE_LOG_DIR}/myserver.net_error.log
CustomLog ${APACHE_LOG_DIR}/myserver.net_access.log combined
</VirtualHost>
If you wonder where <Directory />
belongs, it belongs in server config (or global config, outside of virtualhost) and should be set to Require all denied. Otherwise you are actually giving access to everyone to your whole filesystem.
I also removed your IfModule for mod_negotation since to disable multiviews is the same as not having it so an Ifmodule mod_negotiation to disable multiviews makes little sense.