Sinatra 라이브러리를 사용하여 HTML 코드를 단일 함수로 표시하는 두 가지 함수를 압축하려고합니다. 이 두 기능은 적은 양의 HTML 만 다릅니다. 예를 들어 보겠습니다. 이 차이가 HTML의 일부를 가지고 표시 두 함수의 단일 응축 버전에 전달할 수있는 경우이 두 가지 기능을 호출 루비 함수에서 HTML을 변수에 넣을 수 있습니까?
def make_start_page()
<<EOS
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
<p> Hello </p>
<img src="..." />
</body>
</html>
EOS
end
def make_guess_page()
<<EOS
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
<p> Something different </p>
<a href="..." >1</a>
</body>
</html>
EOS
end
는 궁금 그 페이지.
def handle()
if 1
var = "<p> Hello </p>
<img src="..." />"
elsif 2
var = "<p> Something different </p>
<a href="..." >1</a>"
make_start_guess_page(var)
end
그래서 작동하지 않습니까? –
"DRY"개념, 즉 "반복하지 말 것"은 당신이 말하는 것입니다. 차이점을 이해하고 특정 컨텍스트에서 필요한 것을 조건부로 대체하여 코드의 중복성이 거의없는 코드를 리팩토링하는 것이 좋습니다. –