У меня есть модель под названием Trainers с полем datetime под названием scheduled_interview
, которое можно редактировать в ActiveAdmin:
f.input :scheduled_interview
Это создает 5 <select>
s (для года, месяца, дня, часов и минут).
Я пробовал добавить каждый из:
permit_params :scheduled_interview => []
а также:
permit_params scheduled_interview: []
в ActiveAdmin.register Trainer do ...
Но при отправке формы я вижу:
Unpermitted parameters: scheduled_interview(1i), scheduled_interview(2i), scheduled_interview(3i), scheduled_interview(4i), scheduled_interview(5i)
Что я делаю не так с сильными параметрами?
Редактировать 1: здесь используется Rails 4, о чем я не совсем понял.
Изменить 2:
В контроллере трейнера:
def create
@trainer = Trainer.new(application_params)
end
def application_params
params.require(:trainer).permit(
:name, :email, :scheduled_interview: []
)
end
Использование только :scheduled_interview
приводит к той же ошибке, что и выше.
Изменить 3:
Журнал при сохранении трейнера:
Started PATCH "/admin/prospective_trainers/trainer-id" for 10.0.2.2 at 2014-07-06 17:49:36 +0000
Processing by Admin::ProspectiveTrainersController#update as HTML
Parameters: {"utf8"=>"✓", "prospective_trainers"=>{"name"=>"trainer name", "email"=>"[email protected]", "scheduled_interview(1i)"=>"2014", "scheduled_interview(2i)"=>"7", "scheduled_interview(3i)"=>"15", "scheduled_interview(4i)"=>"16", "scheduled_interview(5i)"=>"15"}, "commit"=>"Update Trainer", "id"=>"trainer-id"}
AdminUser Load (1.2ms) SELECT "admin_users".* FROM "admin_users" WHERE "admin_users"."id" = 8 ORDER BY "admin_users"."id" ASC LIMIT 1
Trainer Load (1.2ms) SELECT "trainers".* FROM "trainers" WHERE "trainers"."slug" = 'trainer-id' ORDER BY "trainers"."id" ASC LIMIT 1
Unpermitted parameters: scheduled_interview(1i), scheduled_interview(2i), scheduled_interview(3i), scheduled_interview(4i), scheduled_interview(5i)
Unpermitted parameters: utf8, _method, commit, id
(0.4ms) BEGIN
(0.4ms) COMMIT
Redirected to http://localhost:3000/admin/prospective_trainers/trainer-id
Trainer Load (1.0ms) SELECT "trainers".* FROM "trainers" WHERE "trainers"."id" = $1 LIMIT 1 [["id", 327]]
Completed 302 Found in 167ms (ActiveRecord: 4.3ms)
Все остальные поля сохраняются нормально (имя, адрес электронной почты и т. Д.).
strong params
метод вашего контроллера? А также что произойдет, если вы просто дадите это как:scheduled_interview
? - person Pavan   schedule 06.07.2014:scheduled_interview
генерирует ту же ошибку. - person Greg Annandale   schedule 06.07.2014