문제

변수의 가시성에 대해 뭔가를 놓치고 있습니다. 내 config.rb에서는 데이터 구조를 사용하여 동적 페이지를 생성합니다.

    @pages = [
    {
      id: "cookies",
      title: "Happy Chocolate Chip Cookies", 
      quote: "These cute cookies are full of sweet chocolate and ready to give you energy!",
      content: "Orecchini a monachella. Realizzati in fimo, dipinti a mano e rivestiti con vernice lucida."
    },
    ....]



 @pages.each do |p|
    page "/creations/#{p[:id]}.html", :proxy => "item-template.html", :ignore => true do 
      @tile = p
    end
  end
.

페이지 생성은 잘됩니다.하지만 ..

생성 된 페이지에 동적 링크를 제공하기 위해이 데이터 구조에 액세스하려면 어떻게해야합니까?다음 코드를 사용하여 인덱스 페이지 (IT Creations.html)를 생성 할 수 있습니다.

    <ul>
    <% @pages.each do |tile| %>
        <li><a href="creations/<%= tile[:id]%>.html">
            <%= tile[:title] %>
        </a></li>
    <% end %>
</ul>
.

도움이 되었습니까?

해결책

사용자 지정 도우미를 만들 필요가 없으면 YAML 데이터 파일을 사용하여 템플리트를 채우고 링크 목록을 생성 할 수 있습니다. 설명하겠습니다.

원본과 빌드 디렉터리와 동일한 레벨에서 데이터 디렉토리를 만들지 확인하십시오. IE :

  • 빌드
  • 소스
  • 데이터

    내부에서는 "pages.yml"(예 :)이라는 파일을 만듭니다.

    이 파일을 구체적으로 형식화해야하므로주의해야합니다 (또는 "NoFollow noreferrer"> Yaml Parser 누락 된 쉼표 또는 이스케이프 된 인용문과 같은 오류가 없는지 확인하려면

    config.rb 파일의 데이터를 사용하여 예제는 다음과 같습니다.

    - id: "cookies"
      title: "Happy Chocolate Chip Cookies"
      quote: "These cute cookies are full of sweet chocolate and ready to give you energy!"
      content: "Orecchini a monachella. Realizzati in fimo, dipinti a mano e rivestiti con vernice lucida."
    
     - id: "bacon"
       title: "Smoked bacon bits"
       quote: "everything tastes better with bacon!"
       content: "blah"
    
    .

    등 ... ...

    이제는 config.rb 파일에서 @ pages.each do | p | data.pages.each do | p | 로 바꿉니다.

    data.pages.each.each 루프 새로 생성 된 yaml 파일의 각 항목을 통해

    다음과 같이 인덱스 파일 (Creations.html)에서 동일한 파일을 참조하십시오.

    <ul>
      <% data.pages.each do |tile| %>
        <li><a href="creations/<%= tile[:id]%>.html">
           <%= tile[:title] %>
        </a></li>
      <% end %>
    </ul>
    
    .

    여기

    이것은 도움이되기를 바랍니다. 행운을 빌어!

다른 팁

파일에서 @pages 파일의 creations.erb 데이터 구조를 리턴하는 도우미를 추가 할 수 있습니다.나는config.rb 파일에 추가 :

helpers do
  def dynamic_pages()
    @pages
  end
end
.

creations.erb에서 다음과 같습니다.

<ul>
  <% dynamic_pages.each do |tile| %>
    <li><a href="creations/<%= tile[:id]%>.html">
       <%= tile[:title] %>
    </a></li>
  <% end %>
</ul>
.

및 동적 페이지 (!)에서 동적 페이지를 참조하려면 도우미가 HTML을 생성 할 수 있고 ... NAH를 호출 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top