我在我的自定義控制器中遇到了強烈的參數問題。我瞭解如何在新的或更新操作中使用強參數。但是,我似乎無法弄清楚,如果這是不安全的使用params []哈希或不在我的自定義操作。強大的參數和在軌道中查找4
我的視圖重定向到與訂單ID和操作數的控制器:
link_to 'Confirm', confirmpayment_confirm_path(order: order, operacion: order.operacion), :data => { confirm: 'Are you sure?' }
我confirmpayment控制器如下:
class ConfirmpaymentController < ApplicationController
before_action :authenticate_user!
def lookup
authorize! :lookup, :confirmpayment
@orders=Order.where(:status => 'PENDING')
end
def confirm
authorize! :confirm, :confirmpayment
@order=Order.find(params[:order])
@order.payment_id = params[:operacion]
@order.confirm_payment_date = DateTime.now()
@order.save
end
def order_params
params.require(:order).permit(:order, :operacion)
end
end
的問題是:
我由於這不是新訂單,因此在我的確認操作中不使用order_params
。我正在使用該參數來查找正確的順序並進行確認。這是安全的嗎?或者我錯過了什麼?
'payment_id'只是外部提供者的ID,還是指向數據庫中記錄的外鍵。例如。到「付款」表? – Tobias
就是這樣。指向數據庫中的記錄的foreign_key。 – Augusto