控制器操作呼叫記錄的更新或創建,同時有一個私有方法來為該物件的類設定強引數,這與原始類不同。
def userdiscount
articlediscount_params = params[:articlediscount]
initialise_article_and_params(articlediscount_params)
puts articlediscount_params
if articlediscount_params[:id].present?
@articlediscount = Articlediscount.find(articlediscount_params[:id].to_i)
@articlediscount.update!(articlediscount_params)
else
@articlediscount = Articlediscount.create!(articlediscount_params)
end
end
def articlediscount_params
params.require(:articlediscount).permit(:article_id, :user_id, :discounted_price, :discount, :shop_id)
end
強引數定義與文章折扣控制器中的定義相同
那么為什么測驗會抱怨這些屬性呢? 洗掉require陳述句的元素不會修改錯誤
ActiveModel::ForbiddenAttributesError: ActiveModel::ForbiddenAttributesError
uj5u.com熱心網友回復:
主要問題是這一行:
articlediscount_params = params[:articlediscount]
問題是您現在在這個控制器中有兩個被呼叫的物件articlediscount_params——這個變數和實際執行強引數過濾的方法。洗掉變數定義,您應該會發現您的代碼更符合您的預期。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/375558.html
標籤:红宝石轨道
