0
通過允許在Web請求,我最初的params爲這樣的,不包括不相關的部分:構造新的PARAMS在Rails的
params = {
"base_table"=>{"name"=>"syy", "age"=>"12"},
"tennis_questionaire"=>{"tennis_ball_num"=>"3718"},
"id"=>"1"
}
我想把「base_table」「tennis_questionaire」下,因爲它屬於tennis_questionaire,我想用一種更新方法更新這兩個對象。也就是說,最終的結果我想是這樣的:
params[:tennis_questionaire] =
{"tennis_ball_num"=>"3718", "base_table"=>{"name"=>"syy", "age"=>"12"}},
爲了實現這一點,我創建了一個action_filter預先處理的參數,可以這樣:
before_action :update_param, only: [:create,:update]
def update_param
params[:tennis_questionaire][:base_table] = ActionController::Parameters.new(
params.require(:base_table).permit(:name, :age)
)
end
然而,當我試圖以允許其在處理則params的實際代碼(最後步驟之前,我將它傳遞給update
法):
params.require(:tennis_questionaire).permit(:tennis_ball_num,:base_table)
我發現:base_table是不允許的。
這是爲什麼?有關如何使它工作的任何建議〜?
非常感謝