부분 렌더링 : 객체 대 : 지역
<%= render :partial => 'partial/path', :locals => {:xyz => 'abc'} %>
vs
<%= render :partial => 'partial/path', :object => @some_object %>
첫 번째 xyz
는 부분에서 사용 가능한 로컬 변수를 만들고 두 번째 object
는 부분에서 사용 가능한 로컬 변수를 만듭니다 . 그렇다면 차이점은 무엇입니까? (게다가 locals
둘 이상의 변수를 허용합니다)
두 번째 경우 : object를 사용하면 기본적으로 부분과 동일한 이름을 가진 변수가 정의됩니다. 부분 템플릿 이름이 _user.html.erb이면 템플릿에 정의 된 "user"라는 로컬 변수가 있습니다.
: as => "another_name"으로 다른 변수 이름을 지정할 수 있습니다.
이것은 여기에 문서화되어 있습니다 : http://api.rubyonrails.org/classes/ActionView/PartialRenderer.html , 여기 : http://apidock.com/rails/ActionView/PartialRenderer
... 그리고 이전 Rails (버전 <= v3.09)의 경우 : http://apidock.com/rails/ActionView/Partials
두 번째 형태
render :partial => 'account', :object => @some_account
account
부분 의 변수가로 설정 되는지 확인합니다 @some_account
. :as
옵션을 사용하여 변수의 이름을 바꿀 수 있습니다 .
의 가장 큰 장점 :locals
이다
- 당신은 개체와 이름을 매우 명확하게 제어 할 수 있습니다.
- 둘 이상의 변수를 할당 할 수 있습니다.
그래서 당신은 다음과 같은 것을 할 수 있습니다.
render partial => 'some_view', :locals => { :user => account.user, :details => some_details_we_retrieved }
필요할 때 명확한 분리를 가능하게합니다.
:locals
접근 방식 의 단점 은 더 장황하고 때로는 간단하다는 것입니다.
render :partial => 'account'
~와 동일하다
render :partial => 'account', :locals => {:account => @account }
따라서 가장 적합한 (또는 가장 적합한 곳)을 사용하십시오.
Rails 3+를 사용하는 경우 사용하기 더 쉬운 구문이 있습니다.
# Instead of <%= render partial: "account", locals: { account: @buyer } %>
<%= render 'account', account: @buyer %>
출처 : Action View Partials
참고 URL : https://stackoverflow.com/questions/5122223/render-partial-object-vs-locals
'Development Tip' 카테고리의 다른 글
Java Generics : 반환 유형으로 만 정의 된 Generic 유형 (0) | 2020.11.11 |
---|---|
케이스 당 여러 값으로 PHP 전환을 수행하는 가장 좋은 방법은 무엇입니까? (0) | 2020.11.11 |
Play 프레임 워크에서 선택적 쿼리 매개 변수를 처리하는 방법 (0) | 2020.11.11 |
StackOverflowException은 어떻게 감지됩니까? (0) | 2020.11.11 |
스토리 보드에 인터페이스 설정이있는 Swift의 UIViewController에 대한 사용자 정의 초기화 (0) | 2020.11.11 |