ViewはDRYにしづらいとこだけど、ここはもうちょいDRYに出来る気がする。