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 + Postgres 迁移从每个 db 上的 schema.rb 中删除 enable_extension "pgcrypto":migrate