林堅持試圖找到一種方式來重構這個醜陋的控制器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