8
votes

Capitaliser f.text_field

J'ai une forme_for et je veux que toute valeur à l'intérieur de x.textfield apparaisse avec la première lettre de UPCASE (je parle de la modification où le champ de texte est pré-rempli par les valeurs de base de données).


0 commentaires

4 Réponses :


6
votes

Vous pouvez le capitaliser comme ceci:

<%= form_for ... do |f| %>
  <%= f.text_field :name, :value => f.object.name.capitalize %>


0 commentaires

2
votes

La solution de Pan Thomakos fonctionnera, mais si vous ne voulez pas avoir à ajouter : valeur => f.object.name.capitaliser dans chaque champ de texte du formulaire, vous pouvez rechercher dans le formulaire. écrire votre propre formulaire.

Mettez cela quelque part dans votre chemin de charge, comme lib / capitalizing_form_forme_Form_Builder.rb xxx

utilisation: xxx


0 commentaires

0
votes

Vous pouvez également faire cela dans l'action Créer / mettre à jour du contrôleur, comme indiqué ci-dessous

def create

  @user = User.new(params[:user])
  @user.name = params[:user][:name].capitalize

  if @user.save
   #do something
  else
   #do something else
  end

end


2 commentaires

Ceci est découragé, car la logique de transformation des champs doit être placée dans les modèles: "Contrôleurs minces, modèles de graisse"


Vous avez raison mais ici pour la simplicité vient d'expliquer l'idée que vous pouvez capitaliser. C'est pourquoi il est préférable de placer des choses ensemble comme une image entière que ce qui se passe!



7
votes

Vous pouvez le faire avec CSS ...

= f.text_field: quelque_attribute, style: 'Text-Transform: capitaliser;'


0 commentaires