В вебе-запросе, мои первоначальные Титулы, как это, не включая несвязанную часть:Построить новый Params передать разрешение на Rails
params = {
"base_table"=>{"name"=>"syy", "age"=>"12"},
"tennis_questionaire"=>{"tennis_ball_num"=>"3718"},
"id"=>"1"
}
Я хочу поставить «base_table» под «tennis_questionaire», потому что он принадлежит_shadow_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 не допускается.
Почему это так? Любые предложения о том, как заставить его работать ~?
Большое спасибо