以下數組["2", "8", "134", "137", "140"]
通過用戶輸入生成。控制器動作調用陣列如下:訪問正確的數組值
params[:product_ids].each do |product_id|
@product = Product.where('id = ?', product_id).first
end
不幸的是在視圖中調用時的值(對於開發控制的目的)
<% params[:product_ids].each do |t| %>
<%= t %> <%= @product.id %><br />
<% end %>
正在呈現適當的值t
但然後將其與相關聯140
五次。
2 140
8 140
134 140
137 140
140 140
因此訪問數組的最後一項並忽略密鑰。當這種嘗試在控制器:
params[:product_ids].each do |k, product_id|
它返回Called id for nil, which would mistakenly be 4 -- if you really wanted the id of nil, use object_id
如何控制被定義爲適當的訪問參數的值?
@Malo。該語法確實生成數據。令我感到意外的是'<%= @products%>''返回了'[「2」,#<產品ID:2,struttura_id:1,'[「8」,#<產品ID:8 ,struttura_id:1,'等換句話說,該值,後面跟着對象的數據。然後,如果我想循環遍歷每個記錄並創建新記錄,請使用@@products.each do | product | params [:transaction] [:product_id] = product.id @transaction = Transaction.new(params [:transaction]'我不能這樣訪問一個數組... – Jerome 2014-12-20 19:59:05
@Jerome好,你想得到什麼? =) – 2014-12-20 20:06:13
@Malo產品的ID ...但我相信我的推理陷入了一個循環陷阱。使用'params [:product_ids] .each do | product_id |'會更直接params [:transaction]'... – Jerome 2014-12-20 20:40:04