林坚持试图找到一种方式来重构这个丑陋的控制器Rails的控制器重构DRY代码
def video_games
@video_games_released = Item.video_games.released.group_by {
|item| [item.release_date.try(:strftime, "%B %d, %Y"), item.time_diff_components].join()
}
@video_games_coming_soon = Item.video_games.coming_soon.group_by {
|item| [item.release_date.try(:strftime, "%B %d, %Y"), item.time_diff_components].join()
}
@video_games_unknown = Item.video_games.unknown.group_by {
|item| [item.release_date.try(:strftime, "%B %d, %Y"), item.time_diff_components].join()
}
end
def movies
@movies_coming_soon = Item.movies.coming_soon.group_by {
|item| [item.release_date.try(:strftime, "%B %d, %Y"), item.time_diff_components].join()
}
@movies_released = Item.movies.released.group_by {
|item| [item.release_date.try(:strftime, "%B %d, %Y"), item.time_diff_components].join()
}
@movies_unknown = Item.movies.unknown.group_by {
|item| [item.release_date.try(:strftime, "%B %d, %Y"), item.time_diff_components].join()
}
end
def tv
@tv_coming_soon = Item.tv.coming_soon.group_by {
|item| [item.release_date.try(:strftime, "%B %d, %Y"), item.time_diff_components].join()
}
@tv_released = Item.tv.released.group_by {
|item| [item.release_date.try(:strftime, "%B %d, %Y"), item.time_diff_components].join()
}
@tv_unknown = Item.tv.unknown.group_by {
|item| [item.release_date.try(:strftime, "%B %d, %Y"), item.time_diff_components].join()
}
end
我想摆脱重复的espcially我GROUP_BY方法
我试着去到模型和创建方法
def group_by_month
self.group_by {
|item| [item.release_date.try(:strftime, "%B %d, %Y"), item.time_diff_components].join()
}
end
香港专业教育学院试图划定范围,但似乎没有任何合作
我不是轨专家,真的想学习如何重构代码,并保持干燥的事情
这是一个很好的建议......但有没有简单的方法来重构这个?感谢宝石上的头衔,尽管...我想知道是否有一种很好的方式来重构此代码而不使用宝石。只是为了学习目的...谢谢! – user1502223
为更多的澄清添加更多的意见 –
谢谢多数民众赞成在我正在寻找...什么与在date_group(&date_group)前面的& – user1502223