首页 > 解决方案 > HAML Bootstrap 4 和 rails - 基于局部变量扩展手风琴

问题描述

我有一个包含课程的 Rails 应用程序。每门课程都有章节,每章都有课程。我正在使用引导手风琴显示当前课程的章节和课程列表,但无法弄清楚如何获取用户正在展开的当前章节,但让其余章节折叠。我尝试在底线下添加渲染课程,尝试了一些 javascript,不同级别的缩进。手风琴工作,但一切都开始扩大。

  #accordion
  .list-group#scrollable
    - @chapters.each do |chapter|
      .panel.panel-default
        .list-group-item.shadow
          %a{"data-parent" => "#accordion", "data-toggle" => "collapse", :href => "#collapse#{chapter.id}"}
            = render 'chapters/chapter_preview', chapter: chapter
      -if @lesson.chapter_id = chapter.id
        .panel-collapse.collapse.show{:id => "collapse#{chapter.id}"}
          - chapter.lessons.rank(:row_order).each do |lesson|
            .panel-body
              - if lesson.eql?(@lesson)
                %li.list-group-item.list-group-item-success
                  = render 'lessons/lesson_student', lesson: lesson
              - else
                %li.list-group-item.list-group-item-secondary
                  = render 'lessons/lesson_student', lesson: lesson
      -else
        .panel-collapse.collapse.in{:id => "collapse#{chapter.id}"}

标签: ruby-on-railsbootstrap-4haml

解决方案


你有一个错字可能导致这个问题

- if @lesson.chapter_id = chapter.id
# should be
- if @lesson.chapter_id == chapter.id
# if lesson belongs_to chapter and chapter has_many lessons you could even get rid of the id:
- if @lesson.chapter == chapter

推荐阅读