Rails Helper에서 여러 태그를 반환하는 가장 좋은 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/112197

  •  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/

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top