=render@collection은 잊기 쉬우므로 필기를 남깁니다

2774 단어 renderpartialRails

이것은 무엇입니까?


비록 매우 초보적인 일이지만, 어떤 파일(편리하게 "원본 파일 호출")에서
- @comments.each do |comment|
   = render 'comment', comment: comment
위에서 말한 바와 같이 _comment 부분에서
_comment.html.slim
= comment.body
이런 것들은 항상'논평 일람'을 표시한다.
호출자 파일에서
= render @comments
간단하게 한 줄로 써도 같은 결과를 얻을 수 있다.
하지만 두 가지 조건이 있다.
  • 일부 파일 이름이 전달하는 집합명의 단수 형식
  • 이 부분은 집합 이름과 같은 보기 디렉터리에 있습니다
  • 즉, 이 조합은 OK입니다.
    = render @messages
    # messages/_message
    
    = render @comments
    # comments/_comment
    
    이 조합은 안 된다.(아래 단락과 동일)
    = render @messages
    # messages/_messages (複数形)
    
    = render @comments
    # posts/_comment (ディレクトリがNG)
    
    잊기 쉬워서 적어놨어요.
    Rails Guide에 기재되어 있습니다(권장사항 감사합니다!):
    레이아웃 및 렌더링 - 3.4.5 렌더링 컬렉션

    TIPS


    예를 들어 =render @comments 라고 쓰면 Rails는 자동으로 comments/_comment 파일을 찾아서 호출자 파일이comments 디렉터리에 없더라도 =render @comments 라고 쓰면 @comment 를 반복해서 호출할 수 있다.
    예를 들어, posts#show 작업 페이지에서
    posts/show.html.slim
     = render @comments
    
    쓰더라도 자동으로 호출됩니다comments/_comment.대단하다.

    좋은 웹페이지 즐겨찾기