Ruby on Rails - 从数组中删除某些内容

Posted

技术标签:

【中文标题】Ruby on Rails - 从数组中删除某些内容【英文标题】:Ruby on Rails - Delete something from an array 【发布时间】:2015-03-08 15:40:08 【问题描述】:

我对此代码有疑问。在这个视图中,我遍历了一个数组,但我希望可以选择从数组中删除一个条目。这是我的代码

查看

<table>
  <tr>
    <th>Ware</th>
    <th>Anzahl</th>
    <th>Einzelpreis</th>
    <th>Gesamtpreis</th>
  </tr>
  <% counter = 0 %>
    <% $itemarray.each do |iarray| %>
    <tr>
      <% @items.each do |item| %>
        <% if iarray.to_i == item.id %>
          <th> <%= item.name %> </th>
          <th> <%= $anzahlarray[counter] %> </th>
          <th> <%= item.price.round(2) %> € </th>
            <% preistemp = preistemp = item.price * $anzahlarray[counter].to_f %>
          <th> <%= preistemp.round(2) %> € </th>

          <th> <%= link_to 'Show', item_path(item) %> </th>
          <th> <%= link_to 'Destroy', :hidden_param => 'counter' , method: :deleteshoppingcartentry(counter), data: confirm: 'Are you sure?' %></th>
        <% end %>
      <% end %>
    </tr>  
    <% counter += 1 %>
  <% end %>
</table>

控制器

def deleteshoppingcartentry
   $itemarray.delete_at($entrynumber)
   $anzahlarray.delete_at($entrynumber)

   redirect_to "/orders/new"
end

也许你能帮帮我

【问题讨论】:

你想删除什么? 你在使用任何数据库吗?或者您只是将数据保存在全局变量中? 不,在这种情况下,我不使用数据库。我将它存储在一个全局数组变量中,并想从数组中删除一个 certan 条目。删除选项与项目一起列出,但我不知道如何删除它。 你的代码很难理解:$itemarray 来自哪里,@item 来自哪里?顺便说一句:在 ruby​​ 中,注意必须使用 $ 来声明变量。然后:在您的“销毁”链接中,您正在使用属性计数器调用 deleteshoppingcartentry,但在您对此方法的定义中,您没有分配任何属性。 全局变量是从cookie中填充的,我在整个控制器中使用它们,所以我声明它们是全局的。该属性只是我的一个测试,但我真的不知道如何从数组中删除某个条目。 【参考方案1】:

您不能从全局数组变量中删除项目。请改用数据库。详细了解 Rails 的ActiveRecord。

【讨论】:

以上是关于Ruby on Rails - 从数组中删除某些内容的主要内容,如果未能解决你的问题,请参考以下文章

Ruby on Rails:以表单提交数组

作物哈希结构:Ruby on rails

无法使用 Ruby on rails 删除表中的项目

Ruby on Rails + Postgres 迁移从每个 db 上的 schema.rb 中删除 enable_extension "pgcrypto":migrate

当我尝试从 ruby​​ on rails 上的表单获取输入时,我得到了简单名称的哈希数组瞬间。如何解决?

Ruby on Rails:将字符串数组传递给highchart函数