51 votes

Comment créer un lien de suppression pour un objet connexe en Ruby on Rails ?

Disons que j'ai des Postes et des Commentaires et que l'url de l'affichage est la suivante /posts/1/comments/1 . Je veux créer un lien pour supprimer ce commentaire dans la méthode de destruction du contrôleur des commentaires. Comment faire ?

107voto

Ian Bishop Points 3413
<%= link_to 'Destroy', post_comment_path(@post, comment),
            data: {:confirm => 'Are you sure?'}, :method => :delete %>

dans le contrôleur des commentaires :

  def destroy
    @post = Post.find(params[:post_id])
    @comment = Comment.find(params[:id])
    @comment.destroy

    respond_to do |format|
      format.html { redirect_to post_comments_path(@post) }
      format.xml  { head :ok }
    end
  end

10voto

rkon Points 1847

Depuis un certain temps, le confirm doit être incluse dans un data sinon elle sera ignorée en silence :

<%= link_to 'Destroy',  post_comment_path(@post, comment),
    data: { confirm: 'Are you sure?' }, method: :delete %>

1voto

aks Points 2026

Parfois, quand vous avez <span> , <i> ou des éléments imbriqués à l'intérieur d'un <a> L'utilisation du tag link_to est difficile. Vous pouvez utiliser du HTML brut qui est facile à manipuler, comme ceci :

<a class="btn btn-sm" href="http://stackoverflow.com/blogs/<%=@blog.id%>" data-method="delete">             
  <i class="pg-trash"></i><span class="bold">Delete</span>
</a>

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