Sql 如何调用链接中的供应商id号,从控制器调用

Sql 如何调用链接中的供应商id号,从控制器调用,sql,ruby-on-rails,Sql,Ruby On Rails,我有两张桌子,proveedors(供应商)和productos(产品) 我还有一个控制器,库存检测器。在这个视图中,我显示了所有Proveeder的列表,所有这些Proveeder都有一个链接,我在这里调用它的id 我想知道如何从索引中的链接(in_stock_proveders)到proveders controller调用此id proveders 这是我的routes.rb文件: resources :productos resources :proveedors resources :

我有两张桌子,proveedors(供应商)和productos(产品)

我还有一个控制器,库存检测器。在这个视图中,我显示了所有Proveeder的列表,所有这些Proveeder都有一个链接,我在这里调用它的id

我想知道如何从索引中的链接(in_stock_proveders)到proveders controller调用此id proveders

这是我的
routes.rb
文件:

resources :productos
resources :proveedors
resources :in_stock_proveedors
devise_for :usuarios
get "/stock_proveedors", to: "proveedors#get_stock"
这是链接,我有库存供应商,我从那里打电话 我选择的proveedor的id:

link_to "Ir al proveedor", stock_proveedors_path(:value =>{:id=>item['proveedors.id']})
这是proveedors控制器中的方法,我希望在其中使用参数p从链接接收id号

def get_stock
  @p = Proveedor.find(params[:id])

  sql = 'SELECT productos.id as producto, productos.nombre as nombre  
      FROM productos
      INNER JOIN proveedors ON productos.proveedor_id = proveedors.id
      WHERE productos.proveedor_id = @p
      GROUP BY productos.id'
  @aux= ActiveRecord::Base.connection.execute(sql)  
end
这是库存供应商的指数

create_table "proveedors", force: :cascade do |t|
t.string   "nombre"
t.string   "direccion"
t.string   "email"
t.string   "telefono"
t.string   "rut"
t.datetime "created_at",         null: false
t.datetime "updated_at",         null: false
t.string   "pais"
t.string   "pagina_web"
t.integer  "producto_id"
t.integer  "orden_de_compra_id"
t.index ["orden_de_compra_id"], name: "index_proveedors_on_orden_de_compra_id"
t.index ["producto_id"], name: "index_proveedors_on_producto_id"
end 
项目['proveedors.id'])%> 这是库存供应商控制器

def index
sql3= "SELECT
proveedors.nombre as proveedor,
COUNT(productos.id) as distintos,
COUNT(CASE WHEN productos.stock > '0' THEN productos.id END) as instock,
proveedors.id 
FROM proveedors
INNER JOIN productos ON proveedors.id = productos.proveedor_id
GROUP BY proveedors.id" 
@aux3= ActiveRecord::Base.connection.execute(sql3)    
end 
这是proveedors的模式

create_table "proveedors", force: :cascade do |t|
t.string   "nombre"
t.string   "direccion"
t.string   "email"
t.string   "telefono"
t.string   "rut"
t.datetime "created_at",         null: false
t.datetime "updated_at",         null: false
t.string   "pais"
t.string   "pagina_web"
t.integer  "producto_id"
t.integer  "orden_de_compra_id"
t.index ["orden_de_compra_id"], name: "index_proveedors_on_orden_de_compra_id"
t.index ["producto_id"], name: "index_proveedors_on_producto_id"
end 

假设索引页的控制器操作如下

def index
  sql = 'SELECT * FROM proveedors'
  @proovedors = ActiveRecord::Base.connection.execute(sql)
end
循环浏览索引视图文件中的
@proovedors
列表

<% @proovedors.each do |proveedor| %>
  <%= link_to "Ir al proveedor", stock_proveedors_path(:id => proveedor['id']) %>
<% end %>

只传递您期望的参数
链接到“Ir al proveedor”,股票proveedors\u路径(值:item['proveedors.id'])
。为什么路由中有
{}
proveedors
的模式是什么?@Pavan是一个键入错误我为provedors@Md.FarhanMemonHi编写了模式,我遇到了这个错误,找不到带有“id”的proveedor=