복붙노트

[RUBY-ON-RAILS] 3 레일 부분에 변수를 전달?

RUBY-ON-RAILS

3 레일 부분에 변수를 전달?

나는 그런 같은 루프를 가지고 :

<% @posts.each do |post| %>
  <% render middle %>
<% end %>

그럼 내 중간 부분에서, 어떻게 현재의 게시물을 액세스합니까?

해결법

  1. ==============================

    1.이 시도:

    이 시도:

    <% @posts.each do |post| %>
      <%= render 'middle', :post => post %>
    <% end %>
    

    이처럼 당신은 부분 내에서 사용할 로컬 변수 게시물을해야합니다.

  2. ==============================

    2.로컬 변수로 부분적으로 보내기

    로컬 변수로 부분적으로 보내기

    <%= render :partial => 'middle', :locals => { :post => post } %>
    

    물론, 레일 컬렉션을 렌더링에 대한 바로 가기가 있습니다 :

    <%= render :partial => 'post', :collection => @posts %>
    

    이 경우, 로컬 변수 '포스트'와 각 포스트에 대한 포스트 부분을 호출

    당신은 각 게시물 사이에 스페이서 템플릿을 렌더링 할 수 있습니다 :

    <%= render :partial => 'post', :collection => @posts, :spacer_template => 'post_divider' %>
    
  3. ==============================

    3.

    <% @posts.each do |post| %>
      <% render middle, :post => post %>
    <% end %>
    

    이제 부분에서 지역 변수 포스트로 액세스 게시물을 할 수

  4. ==============================

    4.와 <중앙 % 렌더링 = %> 바꾸기 <중간 렌더링 = % : 포스트 => 포스트 %>. 그런 다음 중간 부분에서, 당신은 포스트 변수에 액세스 할 수 있습니다.

    와 <중앙 % 렌더링 = %> 바꾸기 <중간 렌더링 = % : 포스트 => 포스트 %>. 그런 다음 중간 부분에서, 당신은 포스트 변수에 액세스 할 수 있습니다.

  5. from https://stackoverflow.com/questions/4700617/pass-a-variable-into-a-partial-rails-3 by cc-by-sa and MIT license