>php教程 >PHP开发 >레일즈는 부분 매개변수 변수 설명을 렌더링합니다.

레일즈는 부분 매개변수 변수 설명을 렌더링합니다.

高洛峰
高洛峰원래의
2016-12-13 11:54:121579검색

1. 기본 매개변수

Ruby 코드

<%= render :partial => "account" %>


기본적으로 부분( _account)로 렌더링된 .erb)에는 변수 account

2가 있습니다. 별도의 매개변수인 locals
locals는 해시 매개변수 집합을 전달하며, 해시 키는 에 있는 변수입니다. 부분

Ruby 코드

<%= render :partial => "account", :locals => { :account => @buyer } %>  
  
<% for ad in @advertisements %>  
  <%= render :partial => "ad", :locals => { :ad => ad } %>  
<% end %>


위의 두 렌더링은 각각
로컬 변수 @buyer를 _account.erb의 account라는 매개변수에 전달합니다.
지역 변수 ad를 _ad.erb에 전달하면 ad

3

1개의 기본 매개변수에 따르면 다음 두 개는 동일합니다

루비 코드

<%= render :partial => "contract", :locals => { :contract  => @contract } %>  
  
<%= render :partial => "contract" %>




4. as는

을 사용하여 부분적으로 변수 이름을 전달한 후 다음과 같이 변경합니다. 렌더링 방법은 동일합니다.

Ruby 코드

<%= render :partial => "contract", :as => :agreement  
  
<%= render :partial => "contract", :locals => { :agreement => @contract }


@contract를 _contract.erb에 전달하고 부분 변수 이름은 contract

5입니다. 객체

객체를 사용하는 가장 간단한 방법은 변수의 원래 이름을 부분 변수에 전달하는 것입니다.
그래서 명확하게 기억나지 않는 경우에는 객체를 사용하고 추가로 표현하면 됩니다

다음과 같습니다.

Ruby 코드

<%= render :partial => "account", :object => @buyer %>  
  
<% for ad in @advertisements %>  
  <%= render :partial => "ad", :object => ad %>  
<% end %>


_account.erb 또는 @buyer 부분의 변수 이름에 @buyer를 전달합니다.
광고를 전달합니다. erb 부분의 변수 이름은 여전히 ​​ad

6개 개체와

Ruby 코드

<%= render :partial => "contract", :object => @contract, :as => :contract %>  
  
<%= render :partial => "contract" %>


7컬렉션


Ruby 코드

<%= render :partial => "ad", :collection => @advertisements %>


@advertisements는 배열이고, _ad에 ad 변수가 있습니다. @advertisements 의 멤버인 부분적인 .erb입니다. 즉, _ad.erb는 루프를 작성할 필요가 없으며 단지 광고 표시일 뿐입니다.


Ruby 코드

<%= render :partial => "ad", :collection => @advertisements, :spacer_template => "ad_divider" %>

위와 동일하게 _ad.erb _ad_divider.erb를 @advertisements.size 회 루프에 표시합니다. 여기서는 Partial_ad_counter가 기본값입니다. 첫 번째를 나타내는 카운터

8 기본

부분적으로 사용하려는 변수가 레코드 그룹인지 아니면 로컬 및 컬렉션이 그에 따라 사용되는지에 따라 다릅니다. >

루비 코드

#@account是一条记录  
# <%= render :partial => "accounts/account", :locals => { :account => @account} %>  
<%= render :partial => @account %>  
  
# @posts是一组记录  
# <%= render :partial => "posts/post", :collection => @posts %>  
<%= render :partial => @posts %>
이것은 매우 인간적인 합의이지만 때로는 잊어버리곤 합니다.


9 아름다운 약어



루비 코드

#<%= render :partial => "account" %>可用下面代替  
<%= render "account" %>  
  
#<%= render :partial => "account", :locals => { :account => @buyer } %>可用下面代替  
<%= render "account", :account => @buyer %>  
  
# @account是一条记录  
# <%= render :partial => "accounts/account", :locals => { :account => @account } %>可用下面代替  
<%= render(@account) %>  
  
# @posts是一组记录  
# <%= render :partial => "posts/post", :collection => @posts %>可用下面代替  
<%= render(@posts) %>

10 레이아웃



루비 코드

<%# app/views/users/index.html.erb &>  
Here&#39;s the administrator:  
<%= render :partial => "user", :layout => "administrator", :locals => { :user => administrator } %>  
  
Here&#39;s the editor:  
<%= render :partial => "user", :layout => "editor", :locals => { :user => editor } %>  
  
<%# app/views/users/_user.html.erb &>  
Name: <%= user.name %>  
  
<%# app/views/users/_administrator.html.erb &>  
<div id="administrator">  
  Budget: $<%= user.budget %>  
  <%= yield %>  
</div>  
  
<%# app/views/users/_editor.html.erb &>  
<div id="editor">  
  Deadline: <%= user.deadline %>  
  <%= yield %>  
</div>


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.