将comments_id传递给Rails应用程序中的控制器

时间:2017-09-29 14:08:02

标签: ruby-on-rails parameters edit destroy

我无法在基本的Rails MVC中编辑/删除注释,但我遇到的麻烦是comments_controller查找user_id而不是comments_id,因为user_id是外键。我的假设是Comment.find(params [:id])会导致comments_id,但这是个案。

这是我的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

我尝试编辑/删除的观看中的评论如下所示:

     <% @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 %>

感谢您提供的任何建议: - )

1 个答案:

答案 0 :(得分:0)

编辑/销毁评论时,需要在link_to帮助程序中传递实际评论。像link_to 'Destroy', w, method: :delete, data: { confirm: 'Are you sure?' }这样的东西会。

与编辑类似:link_to 'Edit', edit_comment_path(w)