Я пишу кусок кода в моем контроллере, который должен принять данные, которые пользователь вводит в виде 00:00, и преобразовать их в минуты перед отправкой в модель.Код, который я использую, довольно прост: просто разделите параметр: duration на двоеточие, умножьте часы на 60 и добавьте минуты к этому числу.Когда я отправляю for, я получаю сообщение об ошибке, когда он пытается выполнить разбиение на нулевом объекте.Это должно означать, что я не получаю доступ к параметру правильно, но меня смущает то, как я могу перейти к глубоко вложенному параметру и, кажется, не могу найти какую-либо документацию относительно глубоко вложенных параметров.
Вот моя модель организации:
log_entry >>
has many
workouts >>
has many
workout_times, which has :duration as an attribute
Это код в моем log_entries_controller:
def convert_duration
hours, minutes = params[:log_entry][:workout][:workout_time][:duration].split(":")
params[:log_entry][:workout][:workout_time][:duration] = (hours.to_i * 60 + minutes.to_i)
end
Я попробовал все возможные способы написаниячасть params, но я не могу понять, что это правильно.Я довольно новичок в рельсах / программировании, так что может быть что-то совершенно очевидное, что мне не хватает ...
РЕДАКТИРОВАТЬ
Вот информация журнала параметров прошлого:
Parameters: {
"commit" => "Save",
"log_entry" => {
"date(1i)" => "2011",
"date(2i)" => "10",
"date(3i)" => "13",
"workouts_attributes" => {
"0" => {
"time_of_day" => "AM",
"summary" => "",
"workout_times_attributes" => {
"0" => {
"duration" => "2:00",
"zone" => "1",
"_destroy" => "false"
}
}
}
}
},
"authenticity_token"=>"zD6qS6jOSQ3/mRyH7RAgAzWYmwHub0+uBG1sjPVvkEY=",
"utf8"=>"\342\234\223"
}