Form_for select field, concatenando datos en la cadena de visualización

Estoy tratando de usar un form_for collection_select para mostrar algunas opciones de campo seleccionadas de tipos de cuenta.

Se me ha ocurrido que sería más fácil para el usuario si pudiera ver el precio del tipo en cada opción de selección

este es mi código que actualmente no funciona:

<%= a.collection_select :account_type, AccountType.all, :id, (:name+" - "+number_to_currency(:price)) %>

¿Cómo puedo concatenar los valores para que (:name+" - "+number_to_currency(:price)) funcionará realmente y no arrojará un error?

preguntado el 03 de mayo de 13 a las 08:05

1 Respuestas

Ver la documentación: http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-collection_select

Puede usar la opción :text_method para configurar el texto que se muestra en el menú desplegable de selección.

En su modelo AccountType, defina un método como este:

  def name_with_price
    "#{name} - $#{price}"
  end

Entonces, en su opinión, puede usar:

<%= a.collection_select :account_type, nil, AccountType.all, :id, :name_with_price %>

contestado el 03 de mayo de 13 a las 13:05

Lo vi en la documentación. pero eso es mostrar lógica en un modelo, lo que rompe los principios de MVC, ¿verdad? - Kristian

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.