Rails 4:删除按钮发布到索引操作。

时间:2015-08-10 14:42:35

标签: ruby-on-rails-4 link-to

由于几个重要原因,我没有在我的Rails应用程序中使用JS turbo链接。我遇到一个删除按钮问题:

<% if current_user?(comment.user) %>
    <%= link_to "delete", micropost_response_comment_path(@micropost, @response, comment), method: :delete, data: { confirm: "You sure?" }, :class =>    "btn btn-default btn-xs delete" %>
  <% end %>

这是错误 - 它发布到comments_controller的索引操作。

 {"controller"=>"comments", "action"=>"index", "micropost_id"=>"impedit-ipsam-maxime-voluptatem-quis-vitae-perferendis-voluptatem-quia-minus-officia-dolorem-aut-placeat-tempora-earum-optio-quam-saepe-velit-871c1ab8-e282-441b-b610-4d2937c9aeef", "response_id"=>"38"}

我的应用程序上的所有其他删除按钮和销毁功能都有效。我在这里看不到任何问题,我不确定还有什么要补充 - 我确信需要更多信息,但不确定是什么......

如果您有任何建议并需要更多信息,请告知我们。

非常感谢

3 个答案:

答案 0 :(得分:0)

您可以按如下方式指定控制器和操作:

<% if current_user?(comment.user) %>
  <%= link_to "delete", { controller: "comments", action: "delete", micropost: @micropost, response: @response, comment: comment}, data: { confirm: "You sure?" }, class: "btn btn-default btn-xs delete" %>
<% end %>

否则,您可能遇到路由问题。

答案 1 :(得分:0)

错误未显示您的第三个参数:“评论”。 那是缺失的。 你能找出原因吗? 此外,错误本身也不会显示。你能选择更多文字并带到这里吗?

是否在控制器的“删除”操作之前或之后引发了该错误? 记录是否已被删除,控制器是否正确引导您到索引? 什么是完整的错误消息? 控制器中的“删除”操作是什么? 问候。

答案 2 :(得分:0)

好的,所以我发现了错误,它确实是一串人们根本没想过的错误。不确定是否有人可以从中吸取教训,但这里就是....

评论属于属于Micropost的Response。

我有

 belongs_to :response, dependent: :destroy

在我的评论模型中,而不是相反,因此当我销毁评论时,其父母也被销毁。

在我在评论控制器中的destroy方法中,我有一个重定向

   format.html { redirect_to micropost_response_comments_path(@micropost, @response) }
在破坏之后,这是不可能的,因为@response总是被它摧毁......

错误的灾难。谢谢你们的时间......

消息是:

如果您在删除对象时发生了严重的行为,请确认您对该模型,其父母及其子女的关系是正确的。