2010-05-15 7 views
1

제목이 내가 무엇을 요구하는지 이해하기에 충분하지 않다면 죄송합니다. 저는 레일 개발자이며 여러 줄을 < % %> 내 의견으로는 사용했지만 지금은 모범 사례가 아니므로 여기에 와서 모든 훌륭한 사람들에게 ROR의 올바른 방법이 무엇인지 알고 싶습니까?여러 줄을 사용하는 가장 좋은 방법은 무엇입니까 <% %> 태그 또는 <% %> 여러 줄 태그?

<% user =User.all %> 
<% name= [] %> 
<% count = 0 %> 
    <% for user in users %> 
    <% name << user.name %> 
    <% count+=1%> 
    <% end %> 

는 내가 그것을 다음과 같이 할 수 있습니다 예를 들어

내가 다음과 같이 뭔가 필요한 경우?

<% user =User.all 
    name= [] 
    count = 0 
    for user in users 
     name << user.name 
     count+=1 
    end 
%> 

나는 배열에서 요소를 수집하는 더 좋은 방법을 알고있다. 그러나 위의 것은 단지 예일 뿐이다. 하지만 제 질문은 가능합니다, 그렇다면 올바른 방법입니까?

+1

작동합니까? 작동하고 합리적인 접근 방식 (즉, 일부 아키텍처 원칙을 위반하지 않음) 인 경우 정확한 방법입니다. 읽기가 더 쉽고 간단하기 때문입니다. –

답변

1

나는 올바른 길은 완전히 다른 것이라고 생각한다.

This blog post은 내가 무슨 뜻인지 설명합니다.

+0

전적으로 동의합니다. 논리는 컨트롤러에 있어야하며, 뷰를 렌더링하는 것과 관련이있는 경우 도우미가 될 수 있습니다. 이와 같이하면 여러 줄의 코드를 볼 필요가 거의 없습니다. –

+0

그냥 예 귀중한 내가보기에 대한 논리 작성된 아니지만 그냥 같은 위의 뭔가를 작성해야 할 때 사용해야하는지 알고 싶습니다. – Salil

0

출력을 더 작게 만들기 때문에 코드 블록 당 한 쌍의 태그 만 사용하는 것이 좋습니다.

코드는 정말 오히려 "계산"names.size를 통해 얻을 수있다

<% names = User.all.map(&:name) %> 

주처럼 보일 것입니다.

시작과 끝 필요
<% for user in User.all %> 
<%= user.name %></br> 
<% end %> 
1

이 처럼 '<%'또는 '%>'을 가지고 : 당신이 <퍼센트 및 <퍼센트을 혼합해야하는 경우

= 당신은 전환 할 필요가

<% users = User.all 
    name= [] 
    count = 0 
    for user in users 
     count+=1 
    end %>