Je ne parviens pas à modifier/supprimer des commentaires dans un MVC Rails basique, mais le problème est que le paramètre comments_controller recherche l'ID utilisateur et non l'ID commentaires, car l'ID utilisateur est l'étranger. clé. Ma supposition était que Comment.find (params [: id]) mènerait à comments_id, mais ceci est npot le cas.Passage comments_id au contrôleur dans l'application Rails
Ceci est la dernière partie de mon comments_controller:
def edit
@comment = Comment.find(params[:id])
@user = current_user
end
def update
@comment = Comment.find(params[:id])
@user = current_user
@comment.update(comment_params)
redirect_to @comment
end
def destroy
@user = current_user
@comment = Comment.find(params[:id])
@comment.destroy
redirect_to comments_path
end
private
def comment_params
params.require(:comment).permit(:user_id, :location, :title, :body)
end
Les commentaires dans les vues que je suis en train de modifier/supprimer ressembler à ceci:
<% @user.comments.each do |w| %>
<tr>
<td>Location:<%= w.location %></td>
<td>Title:<%= w.title %></td>
<td>Body:<%= w.body %></td>
<td><%= link_to 'Edit', edit_comment_path %></td>
<td><%= link_to 'Destroy', comment_path,
method: :delete,
data: { confirm: 'Are you sure?' } %></td><br>
</tr>
<% end %>
Merci pour tous les conseils proposés :-)
Oui! Cela a fonctionné - mais seulement la deuxième façon que vous avez suggérée, avec le w entre parenthèses directement derrière le chemin :-) – Robert