나는 3 개의 다른 부분을 가지고 있으며 정확한 제품 (또는 데이터베이스의 레코드)에 따라 다른 위치에서보기에 표시하려고합니다. 몇 가지 제품에서 3 부분 중 2 부분 만 표시하고 싶습니다. 나는 어떻게 이것을 성취 할 것인가? 감사합니다.레일 4는 데이터베이스의 변수를 기반으로 부분 렌더링합니다
0
A
답변
2
사용자 정의 로직을 사용하여 부분을 렌더링하려는 일부 템플릿 (예 : products/show.html.erb
)이 있다고 가정하면 조건부 논리를 해당 템플릿에 포함하는 것이 좋습니다. 다음은 내 생각에 많은 가정이있는 예입니다. 자세한 내용을 자유롭게 추가하고 업데이트 할 수 있습니다.
첫째, 나는 믿고있어 기본 템플릿, 당신의 show
작업입니다 :
# products/show.html.erb
<h1>Product <%= @product.name %></h1>
<p><%= @product.description %></p>
<% if @product.is_fungible? %>
<%= render partial: 'products/fungible', locals: { product: @product } %>
<% end %>
<% if @product.is_edible? %>
<%= render partial: 'products/edible', locals: { product: @product } %>
<% else %>
<%= render partial: 'products/inedible', locals: { product: @product } %>
<% end %>
그리고 당신의 파셜이 (그래서 같이 우리가 지역 변수로 product
에 통과 한 이후, 그주의 수도, 우리는 그들에 인스턴스 변수 @product
를 사용할 필요가 없습니다 :
# products/_fungible.html.erb
<p>This product is definitely fungible, by a factor of <%= product.fungibility %>.</p>
+0
그것이 작동하는 하나의 솔루션입니다. 또한 부분 변수를 변수로 사용하고 해당 변수를 템플릿을 참조하여 사용할 수 있음을 발견했습니다. <% render partial => product.partialone %> 예를 들어 product.partialone이 "products/edible"인 경우를들 수 있습니다. –
관련 문제
- 1. 레일 4는 현지인과 부분 렌더링합니다
- 2. 레일 4는 json 중첩 된 객체를 렌더링합니다.
- 3. 레일 4는 액션에서 xml 레이아웃을 렌더링합니다.
- 4. 레일 4는 erb에서 javascript 변수를 전달합니다
- 5. 레일 4는 슬림 에러가 발생합니다
- 6. 레일 4는 값을 설정하기 전에 세션 변수를 확인합니다.
- 7. 레일 4는 Factorygirl을 PostgresSequence에 연결합니다.
- 8. Rails 및 jQuery로 부분 뷰를 동적으로 렌더링합니다.
- 9. 변수를 부분 레일에 전달합니다 (레일 3)?
- 10. 레일 4는 추가 열을 통해 has_many를 설정합니다.
- 11. 로캘을 기반으로 통화 기호를 렌더링합니다.
- 12. 레일 4는 javascript를 포함하는 text_field_tag에서 값을 얻습니다.
- 13. 레일 액세스보기 이름 부분 내부
- 14. 레일 : 여러 매개 변수를 기반으로 필터링 하시겠습니까?
- 15. 동적 변수로 부분 렌더링 레일
- 16. 레일 3 - 렌더링 부분 부분
- 17. 레일 4는 아약스 부분 렌더링 후 포스트 (패치가 아닌)로 되돌아갑니다.
- 18. 레일 4는 .js.coffee보기에서 CoffeeScript 함수를 호출합니다.
- 19. 레일 4는 표로 XML을 구문 분석
- 20. 레일 4는 현재의 조건부 "스타일"을 확인합니다.
- 21. 레일 4는 has_many through, 여러 레벨을 얻습니다.
- 22. 레일 4는 DB에서 date_field를 입력하여 편집합니다.
- 23. 레일 4는 내 모델 이름에 밑줄을 추가합니다.
- 24. 레일 4는 중첩 된 연관을 호출합니다.
- 25. 레일 4는 통합 테스트를 고안합니다. 영구 사용자입니까?
- 26. 레일 부분 이미지 렌더링
- 27. 레일 : 종류별보기 부분
- 28. 렌더링하지 레일 부분 4 올바르게
- 29. 레일/3 - 인스턴스 변수의 상태를 기반으로 부분 렌더링?
- 30. 레일즈는 도메인 이름을 기반으로 정적 페이지를 렌더링합니다.
나는 확실하지 않다이 JS 또는 CSS 요구 또는 레일 솔루션이 있다면 난 아무것도 시도하지 않은하지만 좋은 방법을 찾고 있다면. 이것을 달성하기 위해. –
정확한 제품 (또는 데이터베이스의 레코드)에 따라보기에 부분을 표시하려면 레일을 사용해야합니다. 이를 위해 제어기 메소드를 사용할 수 있습니다. – luissimo
꽤 많은 조합이 있습니다. 컨트롤러 메소드는 어떻게 생겼을까요? 그냥 성명서? –