app/views/shared
lib에 공유 부분을 보관합니다. 나는 '방법을 참조하십시오공유 부분 구성
.
.
.
<%= link_to 'Show Comments', '#', id: 'show-comments-link' %>
<section id="comments-section">
<table id="comments-table">
<tbody>
<%= render partial: 'shared/comment', collection: @comments %>
</tbody>
</table>
</section>
</section>
을 :
app/views/shared/_comment.html.erb
:
<tr>
<td><%= comment.body %></td>
<td><%= link_to 'Edit', edit_comment_path(comment) %></td>
<td><%= link_to 'Destroy', comment, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
app/views/posts/show.html.erb
그래서 예를 들어 나는 다음을 수행 할 수있는 특정 게시물에 대한 의견을 표시하려면 그것의 참조로 부분을 렌더링 할 수있다 위치app/views/shared
lib d 이름이이고 파일 이름은 앞에서 _
이 아니거나 .html.erb
으로 끝나지 않았습니까?
<%= render partial: 'shared/comment', collection: @comments %>
파셜 작업하는 레일이 convention over configuration을 선택하는 경우의 좋은 예입니다 :
그것은 바로 여기이 선입니다. 여기에는 많은 규칙이 있습니다.
파일 이름, 위치 및 코드 구성에 초점을 맞추고 (건너 뛰고 rendering collections). 나는 Agile Web Development with Rails 5에서이 인용이 많은 도움이 될 것입니다 생각 :
render
호출에 대한 첫 번째 옵션 또는:partial
매개 변수는 단순한 이름 인 경우, 레일 대상 템플릿이 현재 컨트롤러의view
디렉토리에 있다고 가정합니다. 그러나 이름에 하나 이상의/
자를 포함하면 레일스는 마지막 슬래시까지의 부분이 디렉토리 이름이고 나머지는 템플리트 이름이라고 가정합니다. 디렉토리는app/views
이하라고 가정합니다. 따라서 컨트롤러간에 부분 및 하위 템플릿을 쉽게 공유 할 수 있습니다.레일 애플리케이션에서 사용되는 규칙은
shared
이라는 하위 디렉토리app/views
에 이러한 공유 부분을 저장하는 것입니다.
이제 comments-section
끝에 삽입 할 새 메모를 만드는 양식을 추가해야하는지 궁금합니다.
- 는 또한
_comment_form.html.erb
그것을 이름의app/views/shared
디렉토리에 넣어, 그리고'shared/comment_form'
로 참조를 계속해야 하는가? app/views/comments
디렉터리로 모든 항목을 이동해야 할 경우_form.html.erb
으로 이름을 지정하고'comments/form'
으로 참조하십시오 (shared
디렉터리 규칙과 반대).- 또한 새 덧글에 대해
Posts#show
동작 내에@new_comment = Comment.new
을 생성해야합니까? - 공유 부분을 구성하는 방법을 결정하는 데 도움이되는 몇 가지 일반적인 지침은 무엇입니까? (어쩌면
shared/comments/_form.html.erb
에 들어가야할까요?)이 수도