9
votes

Ruby sur rails 4 Sélectionnez plusieurs

J'ai une forme qui crée de nouveaux utilisateurs. J'essaie d'ajouter une option déroulante pour sélectionner les niveaux d'autorisation. Je veux pouvoir sélectionner plusieurs niveaux d'autorisation par utilisateur.

Ceci est mon point de vue, j'ai ajouté {: multiple => true} code>: p> xxx pré>

mon contrôleur, j'ai ajouté : autorisation => [] code>: p> xxx pré>

l'erreur que je reçois pour ma vue, f.select:

wrong number of arguments (5 for 2..4)


0 commentaires

3 Réponses :


14
votes

classe code> et multiple code> fait partie de html_options code>, afin qu'ils devraient donc se réunir dans un seul hachage.

changer p >

<%= f.select :permission, [ ["Read Only", "read"], ["IP Voice Telephony", "ip_voice"], ["IP Video Telephony", "ip_video_telephony"], ["Enterprise Gateways", "enterprise_gateways"], ["Consumer ATAs", "consumer_atas"], ["IP PBX", "ip_pbx"], ["Master of All", "all"] ], {prompt: "Select Permission Level"},
{:multiple => true, class: "input-lg"} %>


6 commentaires

+1 Explication, WOW, pouvez-vous donner une référence, j'avais du mal à en trouver un.


Vous pouvez vérifier API.RubyonRails.org/classes/actionview / Helpers / ... et APIDOCK.com/Rails/actionView/HELPERS/FORMOPTIONHELPER / selec t


Eh bien, je pensais que j'étais d'abord. Actualisez votre page. :RÉ


En fait, @kirthorat m'a battue de quelques secondes alors s'il vous plaît accepter sa réponse.


@Graememclean merci. Appréciez-le. :)


KIRTI, comment la version option multiple sera-t-elle enregistrée dans la DB? Je ne trouve pas de bonne lecture dessus.



6
votes

Votre option pour: la classe n'est pas dans le hachage pour HTML_OPTIONS:

{:multiple => true, class: "input-lg"}


1 commentaires

Lorsque vous utilisez les aides d'un constructeur de formulaire, c'est un peu déroutant car ils prennent une option en moins que les versions non emballées, car le constructeur de formulaire lui-même donne l'objet.



4
votes

Je ne l'ai pas testé jusqu'à présent, mais le message d'erreur est assez simple, vous essayez d'utiliser la méthode #Select à l'aide de 5 paramètres et accepte au plus 4 paramètres, en lisant l'API, il semble que vous devriez fournir le L'attribut «classe» dans le même hachage que vous avez fourni le «multiple» car ils sont tous les deux sont HTML_OPTIONS.

Essayez de l'utiliser comme ceci: P>

<%= f.select :permission,
             [ ["Read Only", "read"],
               ["IP Voice Telephony", "ip_voice"],
               ["IP Video Telephony", "ip_video_telephony"],
               ["Enterprise Gateways", "enterprise_gateways"],
               ["Consumer ATAs", "consumer_atas"],
               ["IP PBX", "ip_pbx"],
               ["Master of All", "all"] ],
             {prompt: "Select Permission Level"},
             {multiple: true, class: "input-lg"} %>


0 commentaires