40 votes

Créer une ligne de tableau dans un lien dans Rails

J'essaie de faire une ligne dans un lien de tableau vers la page d'édition. Je sais que les liens sont créés, parce que je peux les imprimer. Je suis proche, mais il me manque quelque chose d'important. Que dois-je changer pour que le lien fonctionne correctement ?

<h1>Scouts</h1>
<p><%= button_to "Add a new Scout", new_scout_path, :method => :get %></p>
<div class="message-board">
  <table>
    <tr>
      <th>Name</th>
      <th>Rank</th>
      <th>Advancement Date</th>
      <th>Age</th>
    </tr>  

<% @scouts.each do |scout| %>
    <tr <% link_to edit_scout_path(scout) %> >
      <td><%= scout.name %></td>
      <td><%= scout.rank %></td>
      <td><%= scout.advancement %></td>
      <td><%= scout.age %></td>
    </tr>
<% end %>
  </table>
</div>

5voto

Pradeep Agrawal Points 297

Je suis nouveau sur les rails et j'ai le même problème et j'utilise le conseil de Ryan avec quelques changements qui suivent -

$("tr").click(function() { window.location = $(this).data("link") })

Vous devez utiliser $ ( this).

0voto

Voici mon point de vue pour faire ces liens, remote: true

$("tr[data-link]").click(function () {
    $.ajax({
        url: this.getAttribute('data-link'),
        dataType: "script",
        type: "GET"
    });
    event.preventDefault();
});

-1voto

BKSpurgeon Points 11129

Solution simple : ajouter un lien dans une cellule de table :

Cela ne répond pas à votre question, mais il fournit une solution au problème que vous êtes susceptible de vraiment après : il suffit d'ajouter un lien d'édition dans une cellule, plutôt que sur la ligne de la table parce que d'avoir un lien sur la ligne de la table elle-même peut conduire à des résultats attendus pour les utilisateurs. S'ils cliquent dessus, il se peut qu'ils ne veuillent pas être dirigés vers un lien d'édition.

Comme disait mon grand-père : KISS - Keep It Simple Stupid

    <% @scouts.each do |scout| %>
        <tr>
         <!-- Simply edit the scout -->
          <td> <%= link_to edit_scout_path(scout), "Edit Scout" %> </td>      
          <td><%= scout.name %></td>
          <td><%= scout.rank %></td>
          <td><%= scout.advancement %></td>
          <td><%= scout.age %></td>
        </tr>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X