Rails: Comment faire pour désactiver l'astérisque sur le formulaire champs obligatoires?
Lorsque j'ajoute le "Requis" attribut
html des champs de saisie, des Rails de pré-pend un astérisque (*) avant de l'étiquette.
Personne ne sait comment faire pour éviter cela?
Pour quelque raison Rails transforme ce:
<%= f.input :Company, :input_html => {:value => "", :id => "company_name"}, :label => "company name" %>
dans cette:
<div class="input string required">
<label for="company_name" class="string required">
<abbr title="required">*</abbr> company name</label>
<input type="text" value="" size="50" required="required" name="lead[Company]" id="company_name" class="string required">
</div>
Je n'aime pas qu'il s'enroule le tout dans une DIV et ajoute un élément ABBR à la fête.
Comment puis-je éviter cela?
- Pouvez-vous s'il vous plaît poster le code que vous parlez? Qui pourrait l'aider.
- Peabody - j'ai mis à jour la question avec mon exemple de code
- Êtes-vous à l'aide de pierres précieuses comme
formtastic
ousimple_form
? Merci de poster votreGemfile
. - Si vous êtes à l'aide de la
formtastic
gem, voici comment faire pour supprimer les astérisques.
Vous devez vous connecter pour publier un commentaire.
Dans config/initializers/simple_form.rb ajouter cette ligne:
config.label_text
est complètement ignoré.defaults: { required: false }
comme une forme d'option.lambda { |label, required, explicit_label| "#{label}" }
. Note de l'inclusion de laexplicit_label
argument.Vous pouvez simplement régler le marque à valeur vide dans simple_form locale du fichier:
Ou utiliser les CSS pour le cacher.
html: ''
<abbr></abbr>
balise est toujours rendu.Je suis à l'aide de Rails 3.1, et j'ai la vue suivante de code dans mon _form.html.erb pour un modèle donné:
L'étiquette ne montrent pas d'un astérisque si vous faites de cette façon. Sauf si vous affichez le code je ne peux pas être sûr de ce que votre approche est et si ma solution pourrait convenir à ladite approche.
Mise À Jour De Réponse:
Il semble que vous avez hérité de ce code de quelqu'un. En tout cas, après la lecture de votre exemple de code, vous êtes très certainement à l'aide de la simple_form gem. Les informations à propos du gem peut être trouvé ici https://github.com/plataformatec/simple_form. Pour répondre à votre question, si vous changez le code suivant:
Qui doit éteindre le astérisque.
Je voudrais ajouter, en fonction de votre dégoût pour le HTML généré à partir de simple_form, il semble que vous devriez faire à l'écart de la pierre et de ré-écrire votre code de formulaire à l'aide de Rails de formulaire par défaut aides, qui peut être lu sur ici http://guides.rubyonrails.org/form_helpers.html. En fonction de la taille de la base de code, vous pourriez être mieux de juste à le sucer et à apprendre à utiliser un simple_form gem pour le souci de gain de temps, mais si vous pensez que vous avez le temps de tout changer, d'aller pour elle.
La façon la plus simple est de le cacher avec ce css:
Il n'est pas de rails à tous. C'est le simple_form gem. Donc, si vous ne voulez pas tous les éléments d'habillage de ne pas utiliser simple_form. L'utilisation des Rails de forme les aides. Il serait plus simple que de configurer quelque chose que vous n'aimez pas.
Pour toute personne utilisant les Formtastic et avoir ce problème, vous pouvez supprimer les astérisques en éditant le fichier de configuration, qui est généralement app/config/initializers/formtastic.rb.
Modifier cette ligne:
# Formtastic::SemanticFormBuilder.required_string = "(required)"
être:
Formtastic::SemanticFormBuilder.required_string = ""
Plus d'infos ici.
Code qui m'a aidé à résoudre l'astérisque question:
La réponse choisie et de l'autre des suggestions demandant de modifier le code HTML dans les paramètres régionaux de fichier dint m'aider avec les dernières Simple_form gem.
De côté la à partir de la config proposé dans l'acceptation de réponse, vous pouvez passer
required: false
comme une option de saisie, oudefaults: { required: false }
pour l'ensemble de la forme.defaults
est en effet des informations fraîchesJ'ai découvert que si vous souhaitez supprimer l'astérisque(*) derrière elle, puis tout ce que vous avez à faire est d'aller à ce fichier
file /config/locales/simple_form.en.yml
une fois de plus n'est pas une bonne pratique pour modifier vos fichiers de configuration pour les gemmes et quelque chose de votre aide pour une raison quelconque, il est toujours une question de pourquoi avez-vous vraiment utiliser simple_form!
Mais par exemple j'ai découvert que parce qu'il y a de grandes choses au sujet de simple_form nous utilisons, mais est aujourd'hui une meilleure facilité d'utilisation pratique d'avoir les astérisques sur aucun champs requis puis requises.
vous pouvez utilisé
form_for
, et de remplacer la méthodedef label
dansconfig/initializer
pour ajouter un astérisque pour les champs obligatoires suivants:Cette méthode met l'astérisque après tous les champs obligatoires, si vous avez utilisé normale
form_for
, et utilisévalidates_presence_of
Vous pouvez le supprimer de l'ensemble de la forme: