Ruby on rails 如何根据在rails上选择的参数url删除数据?
我有两个rails上的模型,具有以下关联:Ruby on rails 如何根据在rails上选择的参数url删除数据?,ruby-on-rails,Ruby On Rails,我有两个rails上的模型,具有以下关联: class Manufacturer has_many :equipments end class Equipments belongs_to :manufacturer end 我有一个带有以下字段的设备显示页面: title, category_id, sub_category_id, manufacturer_id 当我在设备show
class Manufacturer
has_many :equipments
end
class Equipments
belongs_to :manufacturer
end
我有一个带有以下字段的设备
显示页面:
title,
category_id,
sub_category_id,
manufacturer_id
当我在设备show
页面上时
我试图给出一个按钮,当点击该按钮时,将根据url
上的设备id
获取该页面上的制造商id
,并将其从制造商
表的记录中删除。
我知道如何从制造商show
页面执行此操作。它将像:
Manufacturer.find(参数[:Manufacturer\u id])
但是,如何在设备展示页面中执行相同操作?在设备展示页面中:
<%= link_to 'Delete', delete_manufacturer_equipment_path(@equipment.id), method: :delete, data: { confirm: 'Are you sure?' } %>
沿途
resources :equipments do
member do
delete :delete_manufacturer
end
end
在设备展示页面:
<%= link_to 'Delete', delete_manufacturer_equipment_path(@equipment.id), method: :delete, data: { confirm: 'Are you sure?' } %>
沿途
resources :equipments do
member do
delete :delete_manufacturer
end
end
实现这一点的方法有很多。“正确”的方法是在设备显示页面中有一个链接,该链接向制造商控制器#销毁
操作发出删除请求,并将@device.manufacturer\u id
作为参数发送。像这样:
<%= link_to 'Delete Manufacturer', manufacturer_path(@equipment.manufacturer_id), method: :delete, data: {confirm: 'Some confirmation message'} %>
然后,在您的manufacturers\u controller.rb
中:
def destroy:
@manufacturer = Manufacturer.find(params[:id])
@manufacturer.destroy
redirect_to some_place, notice: 'Manufacturer successfully deleted'
end
另外,如果您只有设备id
,并且希望检索相关的制造商
,则可以执行以下操作:
@manufacturer = Manufacturer.joins(:equipments).where(equipments: {id: params[:equipment_id]}).first
@manufacturer.destroy if @manufacturer.present?
实现这一点的方法有很多。“正确”的方法是在设备显示页面中有一个链接,该链接向制造商控制器#销毁
操作发出删除请求,并将@device.manufacturer\u id
作为参数发送。像这样:
<%= link_to 'Delete Manufacturer', manufacturer_path(@equipment.manufacturer_id), method: :delete, data: {confirm: 'Some confirmation message'} %>
然后,在您的manufacturers\u controller.rb
中:
def destroy:
@manufacturer = Manufacturer.find(params[:id])
@manufacturer.destroy
redirect_to some_place, notice: 'Manufacturer successfully deleted'
end
另外,如果您只有设备id
,并且希望检索相关的制造商
,则可以执行以下操作:
@manufacturer = Manufacturer.joins(:equipments).where(equipments: {id: params[:equipment_id]}).first
@manufacturer.destroy if @manufacturer.present?