Из вопроса непонятно для чего вы хотите создать класс Category и наследоваться от него. У вас какой-то общий функционал предполагается в доходах и расходах?
Попробуйте разобрать этот файл не в хэш, а в массив. Ошибка говорит о том, что получилось неправильное количество аргументов, т.е. не четное количество. Можете посчитать элементы в этом файле через count, тогда картина будет яснее.
Ну тогда надо было конкретнее задавать вопрос, так как из приведенного Вами метода непонятно где именно он используется и с какой целью.
пы.сы. "Правильно заданный вопрос, содержит половину ответа"
Путь 1: Идете на гитхаб и присоединяетесь к opensource проекту (читаете чужой код, ищите ошибки, пытаетесь улучшить продукт своим кодом)
Путь 2: Придумываете свой проект, который будет полезен например на работе или лично Вам и пишите долго и упорно пока вас все не устроит.
Вы можете только следовать каким-то канонам написания языка, но красивый код Вы не напишите пока не начнете писать много кода хотя бы год.
пы.сы. Я сейчас тоже ненавижу себя когда смотрю на код моих первых проектов, так как понимаю что рефакторинг не поможет, а переписывать все с нуля лень. =)
Откуда же ему знать что такое start_date?
start_date = params[:start_date]
end_date = params[:end_date]
Ну или в запросе
@entries = Entry.all.where(:date => params[:start_date]..params[:end_date])
Вполне, если бы было ограничение размещения в одном месте, в больших проектах было бы месиво. Можете посмотреть организацию структуры на разных проектах www.opensourcerails.com
Тем более если вы постоянно хотите пробовать что-то новое, то nodejs Вам подойдет как нельзя лучше, так как развивается она бешеными темпами, что касается разных пакетов и примочек. Хотя лично мне она не близка.