【问题标题】:Ruby on Rails: Confused about how link_to parameters for a delete action with a 'do' blockRuby on Rails:对带有“do”块的删除操作的link_to参数感到困惑
【发布时间】:2015-07-12 21:14:00
【问题描述】:

所以我有一个网络应用程序,用户可以在其中创建和删除自己的事件。当用户按下“垃圾桶”图标(字体真棒图标)但有点卡住时,我试图链接到删除操作。我需要在 link_to “do” 块中包含图标,因为我希望用户按下它来删除他自己的事件。

这对于 GET 路由很容易做到,因为我可以链接到该视图,例如,编辑用户事件的代码看起来像(我正在使用 cancan gem 进行身份验证):

<% if can? :update, @event %>
  <%= link_to edit_event_path(@event), class: 'user' do %>
    <i data-toggle="tooltip" data-placement="left"
        title="Edit your event" class="custom-a2">
      <i class="fa fa-pencil-square-o fa-2x">&nbsp;</i>
    </i>
   <% end %>

以上工作。之前删除事件的链接代码是:

<%= link_to 'Destroy', @event, method: :delete, data: { confirm: 'Are you sure?' } %>
<% end %> 

所以上面的方法也有效,但我希望当用户按下垃圾桶图标时,它会链接到事件控制器的删除操作。这很令人困惑,因为这不是 GET 请求,因此我需要将特定用户和事件传递给 link_to 操作,而无需实际将用户重定向到视图。我能得到帮助吗?我的尝试如下:

<%= link_to(@event), controller: :events, action: :delete, data: { confirm: 'Are you sure?' }, class: 'user' do %>
  <i data-toggle="tooltip" data-placement="left"
      title="Delete your event" class="custom-a2">
    <i class="fa fa-trash fa-2x">&nbsp;</i>
  </i>
<% end %>

【问题讨论】:

    标签: ruby-on-rails ruby


    【解决方案1】:

    您只需要将事件发送到删除操作即可进行删除。这应该工作:

       <%= link_to @event, method: :delete, data: { confirm: 'Are you sure?' }, class: 'user' do %>
          <i class="fa fa-trash fa-2x"></i>
       <% end %>
    

    【讨论】:

    • 给我一个语法错误,一些关于预期输入结束的东西,我认为你的解决方案中有太多的逗号,但我之前也尝试过类似的东西。
    • 等一下,没关系,非常感谢您的帮助 :)
    • 对此感到抱歉。让我知道我也会更新我的答案。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多