나는 업무 시간표 응용 프로그램을 훌륭하게 사용하고 있습니다. 이제 모든 것이 잘 돌아가고 있으며, 리팩터링 시간입니다! 특히 몇몇 견해는 실제로 복잡합니다. 그래서 데코레이터를 사용하여 인스턴스를 정리하기 시작합니다.리팩토링 :보기의 서비스 개체
또 다른 것은 내가 상당한 양의 서비스 개체를 사용한다는 것입니다. 그들이 위대하고 내 모델을 깨끗하게 유지하는 동안, 내 견해에서 사용하면 원하지 않는 것입니다. 나는 약간의 리팩토링 조언을 찾고있다. 의 뷰 코드의 다음 조각을 살펴 보자 :
.row
.span12#timesheet
- days = @timesheet_builder.get_days_in_month
%table.table.days
%tbody
- (1..days).each do |day_nr|
- activity_date = Date.new(@timesheet.year, @timesheet.month, day_nr)
- if @timesheet_builder.is_workday?(day_nr)
- day_type = "workday"
- else
- day_type = "non_workday"
%tr.day(class=day_type)
%td.date{ "data-title" => "#{I18n.t('.timesheet.day_nr')}" }
.day_abbr= @timesheet_builder.get_day_name(day_nr)
.day_nr= day_nr
은 무엇 당신이 보는 것은 일 달에 하루가 근무하는 경우 검사를 얻을 수있는 좋은 TimesheetBuilder 서비스 개체입니다. 결과에 따라 테이블의 행은 다른 색상이나 다른 마크 업을 얻습니다.
잘 작동하지만보기를 더 간단하게 만들려면 어떻게 리팩터링 할 수 있습니까? 데코레이터에서 서비스 오브젝트를 사용할 수 있습니까? 레일 협약에
흥미로운 것처럼 보이는 Cells (http://cells.rubyforge.org)를보고있었습니다. 그것에 대한 의견? – John
'- (1..days) .each do | day_nr |'=>'- days.times do | day_nr | ' – apneadiving