Ruby on rails Ruby on Rails将变量转换为链接_到数组参数
我有一个动作Ruby on rails Ruby on Rails将变量转换为链接_到数组参数,ruby-on-rails,ruby-on-rails-4,link-to,Ruby On Rails,Ruby On Rails 4,Link To,我有一个动作edit\u multiple,它获取一个id列表,例如: def edit_multiple @products = Product.find(params[:product_ids]) end 和a.rb: resources: products do collection do post :edit_multiple end end 以及视图中products变量中的产品集合,我希望将其作为参数传递给link\u to中的路径,类似于: <%= l
edit\u multiple
,它获取一个id列表,例如:
def edit_multiple
@products = Product.find(params[:product_ids])
end
和a.rb:
resources: products do
collection do
post :edit_multiple
end
end
以及视图中products
变量中的产品集合,我希望将其作为参数传递给link\u to
中的路径,类似于:
<%= link_to edit_multiple_products_path(:product_ids => products), :method => :post do %>
update products
<% end %>
产品),:方法=>:post do%>
更新产品
当我单击链接时,我得到错误信息:
Couldn't find Product with id=#<ActiveRecord::Relation::ActiveRecord_Relation_Product:0x495c900>
找不到id为的产品=#
请注意,如果产品ID以数组形式出现,我使用的是Rails 4,请使用
where
,而不是find
:
@products = Product.where("id in (?)", params[:product_ids])
如果产品ID以数组形式出现,请使用
where
,而不是find
:
@products = Product.where("id in (?)", params[:product_ids])
您还可以从以下位置更改视图:
<%= link_to edit_multiple_products_path(:product_ids => products), :method => :post do %>
update products
<% end %>
产品),:方法=>:post do%>
更新产品
致:
products.map(&:id)),:method=>:post do%>
更新产品
您将获得产品ID阵列。您还可以从以下位置更改视图:
<%= link_to edit_multiple_products_path(:product_ids => products), :method => :post do %>
update products
<% end %>
产品),:方法=>:post do%>
更新产品
致:
products.map(&:id)),:method=>:post do%>
更新产品
您将得到一个产品id数组。使用产品。其中(“id in=?”,参数[:Product_id])使用产品。其中(“id in=?”,参数[:Product_id])
find
希望接收单个id作为参数,然后返回单个产品。使用where
将允许您发送多个id并接收多个产品。find
希望接收单个id作为参数,然后返回单个产品。使用where
将允许您发送多个ID并接收多个产品。