Rails Helper에서 여러 태그를 반환하는 가장 좋은 방법은 무엇입니까?
-
02-07-2019 - |
문제
숨겨진 필드를 만들고 하나의 도우미에 링크를 만든 다음 둘 다 내 erb에 출력하고 싶습니다.
<%= my_cool_helper "something", form %>
결과를 내놓아야 한다
link_to "something", a_path
form.hidden_field "something".tableize, :value => "something"
도우미의 정의는 어떻게 될까요?link_to 및 form.hidden_field에 대한 세부 사항은 실제로 중요하지 않습니다.중요한 것은 두 가지 다른 호출의 출력을 어떻게 반환하는가입니다.
해결책
이를 수행하는 방법에는 여러 가지가 있습니다.
기존 레일 도우미는 다음과 같습니다. link_to
, 등은 문자열만 출력합니다.문자열을 함께 연결하여 반환할 수 있습니다. (만약 일이 간단하다면 제가 대부분 하는 일입니다.)
예:
link_to( "something", something_path ) + #NOTE THE PLUS FOR STRING CONCAT
form.hidden_field('something'.tableize, :value=>'something')
더 복잡한 작업을 수행하는 경우 해당 코드를 부분적으로 배치하고 도우미 호출을 요청할 수 있습니다. render :partial
.
그보다 더 복잡한 작업을 수행하고 있다면 errtheblog's를 살펴보는 것이 좋습니다. block_to_partial 도우미, 정말 멋지네요
다른 팁
지금까지 내가 생각해낸 최고는 다음과 같습니다.
def my_cool_helper(name, form)
out = capture { link_to name, a_path }
out << capture { form.hidden_field name.tableize, value => 'something' }
end
더 좋은 방법이 있나요?
문자열 이외의 다른 출력을 버퍼링하려면 다음을 사용할 수 있습니다. concat
대신에 +
.이것 좀 봐 - http://thepugautomatic.com/2013/06/helpers/
제휴하지 않습니다 StackOverflow