IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Ruby on Rails Discussion :

Demande sur l'utilisation de check_box


Sujet :

Ruby on Rails

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 36
    Points : 24
    Points
    24
    Par défaut Demande sur l'utilisation de check_box
    Bonjour,
    Depuis quelques temps je traine un probleme lie a l'utilisation de checkbox.
    Mon but est de creer une page de gestion avec des checkbox a activer/desactiver qui modifieront une valeur booleenne dans la base. Je ne suis pas trop habitue a l'utilisation de checkbox en rails et j'ai du mal a recuperer les informations souhaites.

    PAGE management.rhtml avec le formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
     
    <%= form_tag :action => "update" %>
    	<ul>
    		<% for page in @pages %>
    			<li>
    				<a href="/wiki/<%= page.name %>" ><%= page.name %></a>
    				<%= link_to "Modifier", { :action => "edit", :name => page.name } %>
    				<% if page.name != "FrontPage" %>
    					<%= check_box("checkbox_" + page.id.to_s, page.id.to_s, :checked => page.visibility) %>
    				<% end %>
    			</li>
    		<% end %>
    	</ul>
    	<%= submit_tag %>
    </form>
    Controleur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
      def update
        @page = Page.find( params[:page][:id] )
        @visibility = params[:checked]
        if @visibility.nil?
          @page.update_attributes(:visibility, false)
        end
      end
    Je recupere les informations suivantes mais je ne sais comment les reutiliser :

    params2 = {"checkbox_2"=>{"2"=>"0"}, "commit"=>"Save changes", "checkbox_3"=>{"3"=>"1"}, "checkbox_4"=>{"4"=>"1"}, "checkbox_5"=>{"5"=>"1"}, "action"=>"update", "controller"=>"wiki"}

    Je cherche a recuperer l'ID de mon element en base ainsi que la valeur de mon element visibility correspondant a l'activation de la checkbox mais je n'arrive pas a determiner comment reutiliser les informations recupere.
    Pourriez vous m'aidez svp ?

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 657
    Points : 910
    Points
    910
    Par défaut
    Salut,

    Dans ton formulaire, modifies ton appel à checkbox() en :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    check_box("checkbox", page.id.to_s, :checked => page.visibility)
    Tu obtiens alors comme params qqch de la forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {"commit"=>"Save changes", "action"=>"update", "controller"=>"wiki", "checkbox"=>{"6"=>"0", "7"=>"1", "8"=>"0", "9"=>"0", "1"=>"1", "2"=>"1", "3"=>"0", "4"=>"0", "10"=>"0", "5"=>"1"}}
    Tu peux alors faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      def update
        @pages = Page.find( params[:checkbox].keys )
        @pages.each do |page|
          page.visibility = params[:checkbox][page.id.to_s]
          page.save
        end
      end
    Je pense que ça devrait être mieux
    Toute la documentation Ruby on Rails : gotapi.com/rubyrails
    Mes articles :
    > HAML : langage de template pour Ruby on Rails

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 510
    Points : 652
    Points
    652
    Par défaut
    Perso, j'ai laissé tomber les checkbox.
    Je préfere faire un "link_to_remote" sur une image, et écrire moi meme mon action.
    Quitte à mettre une image de case à cocher, si vraiment on y tient

  4. #4
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 36
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par Taum Voir le message
    Salut,

    Dans ton formulaire, modifies ton appel à checkbox() en :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    check_box("checkbox", page.id.to_s, :checked => page.visibility)
    Tu obtiens alors comme params qqch de la forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {"commit"=>"Save changes", "action"=>"update", "controller"=>"wiki", "checkbox"=>{"6"=>"0", "7"=>"1", "8"=>"0", "9"=>"0", "1"=>"1", "2"=>"1", "3"=>"0", "4"=>"0", "10"=>"0", "5"=>"1"}}
    Tu peux alors faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      def update
        @pages = Page.find( params[:checkbox].keys )
        @pages.each do |page|
          page.visibility = params[:checkbox][page.id.to_s]
          page.save
        end
      end
    Je pense que ça devrait être mieux
    Merci je vais tester ca des que possible.

  5. #5
    Membre averti Avatar de Javix
    Inscrit en
    Juin 2007
    Messages
    531
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 531
    Points : 353
    Points
    353
    Par défaut
    Salut à tous. j'ai essayé d'aplpiquer la technique citée ci-dessus et ça ne marche pas.
    J'utilise Rails 2.2.2 sous Windows XP. J'ai 2 models: User et Role qui sont liés comme HABTM. Role a un attribut 'title'.
    Donc dans mon partial pour éditer un User j'ai ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <p>
      <%= user.label :login %><br />
      <%= user.text_field :login %>
    </p>
    <p>
      <%for role in @roles%>        
        <%= check_box("checkbox", role.id.to_s, role.title)%>
      <%end%>
    </p>
    Quand j'éxécute, j'ai une erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
     TypeError in Users#edit
     
    Showing app/views/users/_user.html.erb where line #7 raised:
     
    can't convert Symbol into String
     
    Extracted source (around line #7):
     
    4: </p>
    5: <p>
    6:   <%for role in @roles%>        
    7:     <%= check_box("checkbox", role.id.to_s, role.title)%>
    8:   <%end%>
    9: </p>
    Une idée ??

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Demande renseignements sur l'utilisation d'un netbook
    Par dj_techno dans le forum Ordinateurs
    Réponses: 2
    Dernier message: 07/04/2009, 09h08
  2. Réponses: 0
    Dernier message: 05/09/2007, 13h24
  3. Réponses: 2
    Dernier message: 04/07/2007, 16h12
  4. demande d'avis sur l'utilisation d'une date
    Par mrkinfo dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 27/07/2006, 19h50
  5. demande de conseils sur l'utilisation d'index
    Par Ickou dans le forum Requêtes
    Réponses: 4
    Dernier message: 29/03/2006, 12h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo