이것은 내 첫 번째 게시물입니다 .--)레일에서 메소드의 HTML을 반환하는 더 나은 방법은 무엇입니까?
현재 RoR (및 일반적인 프로그래밍 개념)의 로프를 배우고 있으며, 메소드에서 일부 데이터를 반환하는 방법이 ' 올바른 방법 '(또는 아마'레일 방식 ') 그렇게 할 수 있습니다.
사용자가 값을 입력 할 수있는 양식이 있고 내 '앱'이 요청 된 데이터를 외부 웹 서비스에서 폴링합니다. 그래서
<tr>
<td>Subscriber</td>
<%= is_subscribed?(@search_result.expiry) %>
</tr>
: 내보기에서
, 나는 포함하는 테이블 데이터 말했다 하나 개의 셀에 나는 다음과 같은 메소드의 호출을 포함 시켰습니다 :보기
추출물 이 작은 전화는 is_subscribed입니까? 아래에 따라 (나는 도우미에 저장 한) 방법 :
def is_subscribed?(sub_date)
if sub_date >= Date.today
return '<td class="text-success">Yes</td>'.html_safe
else
return '<td class="bg-danger">No</td>'.html_safe
end
end
비교의 결과에 따라, 나는 하나 개의 클래스와 값 또는 다른 클래스와 약간의 HTML과 약간의 HTML을 반환합니다.
위의 코드는 작동하며 클래스는 결과 HTML에 올바르게 적용됩니다. 내가 알고 싶은 것은이 일을하는 더 간단한 방법이 있는지, 이것이 나쁜 습관인지 여부입니다. 나는 또한 다른 사람들이 이런 종류의 일을 어떻게 처리 할까 궁금하다.
감사합니다.
정직하게 말하면, 나는 당신의 것을 아주 가독성이 있다고 본다. mahemoff가 제안한 content_tag는 태그를 중첩해야 할 때 유용하며이 모든 연결을 수행하고 싶지 않습니다. – agmcleod
"필기체"HTML은 사용자 입력과 혼합 할 때 나쁜 습관과 보안 문제가됩니다. 이 경우에는하지 않지만 모든 사용 사례에 대해 보안 조치가있는 도우미 메서드 사용을 권장하는 것이 좋습니다. – Jesper