Sql 如何调用链接中的供应商id号,从控制器调用
我有两张桌子,proveedors(供应商)和productos(产品) 我还有一个控制器,库存检测器。在这个视图中,我显示了所有Proveeder的列表,所有这些Proveeder都有一个链接,我在这里调用它的id 我想知道如何从索引中的链接(in_stock_proveders)到proveders controller调用此id proveders 这是我的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 :
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=