Question

I'm developing a simple select. The thing is my code needs to be in spanish, so instead of using Role I have to use Rol (the plurar remains the same: Roles).

So, my model name is: Rol and my Controller name: Roles and in my DB: Roles

<% roles = Rol.all %>
<%=  collection_select(:usuario, :rol_id, roles, :id, :nombre, {:prompt => true}) %>

However, when I run that code I get:

ActiveRecord::JDBCError: Table 'turaser2.rols' doesn't exist: SELECT * FROM rols

(for obvious reasons)... So, my question is: how can I tell rails to look into the "roles" table instead the "rols" table?

Thank you!

Was it helpful?

Solution

The easiest way is to do something like:

set_table_name "roles"

in your model.

OTHER TIPS

The best way to do this is to add a new entry to the inflector. If you only set the table name with set_table_name, the pluralization will still fail anywhere else you may want to use it.

Go to config/initializers/inflections.rb and add:

 ActiveSupport::Inflector.inflections do |inflect|
   inflect.irregular 'rol', 'roles'
 end
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top