I am writing a piece of code in my controller that is suposed to take the data a user inputs in the form of 00:00 and convert that into minutes before sending it to the model. The code I am using is pretty simple, just split the :duration parameter at the colon and multiply hours by 60 and add the minutes to that number. When I submit the for I get an error when it tries to perform split on a nil object. This must mean I am not accessing the parameter correctly but I am confused as to how I would navigate to a deeply nested parameter and cant seem to find any documentation regarding deeply nested parameters.
Here is my model organization:
log_entry >>
has many
workouts >>
has many
workout_times, which has :duration as an attribute
This is the code within my 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
I have tried all the ways I could think of to write the params part but I cants seem to get it right. I am pretty new to rails/programming so there might be somthing totally obvious I am missing...
EDIT
Here is the log info of parameters past:
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"
}