Ruby on rails 对象索引页上的Rails条件语句

Ruby on rails 对象索引页上的Rails条件语句,ruby-on-rails,twitter-bootstrap,if-statement,Ruby On Rails,Twitter Bootstrap,If Statement,在我的rails应用程序中,我有一个我正在调用的对象的索引。如果用户将课程标记为已完成,它将记录在名为Completions的联接表中,并且completed_step布尔值将设置为true 在课程的show操作中,我可以插入一条条件语句来修改“Complete lesson”按钮 按钮逻辑的工作原理如下: <% if current_user.completed_steps.include? @lesson %> <%= button_t

在我的rails应用程序中,我有一个我正在调用的对象的索引。如果用户将课程标记为已完成,它将记录在名为Completions的联接表中,并且completed_step布尔值将设置为true

在课程的show操作中,我可以插入一条条件语句来修改“Complete lesson”按钮

按钮逻辑的工作原理如下:

<% if current_user.completed_steps.include? @lesson %>                
   <%= button_to "This Lesson is Completed", @lesson.next, class: "btn btn-success btn-lg", :method => :get  %>               
<% else %>
   <%= button_to "Mark this Lesson as Complete", complete_lesson_path, class: "btn btn-warning btn-lg" %>
<% end %>

:获取%>
我的问题是如何在索引视图中合并这种类型的逻辑检查

我希望每个课程的链接显示在引导面板中,并且我希望根据用户是否完成每个课程的步骤来更改面板的颜色

我尝试用相同的语句包装面板,但它不起作用,即使用户已完成这些课程,面板仍保持红色

以下是我的尝试:

<% @lessons.each do |lesson| %>

          <% if current_user.completed_steps.include? @lesson %>  
            <div class="panel panel-success">
          <% else %>
            <div class="panel panel-danger">
          <% end %>
              <div class="panel-heading">
                <h3 class="panel-title">
                  <%= link_to(lesson) do %>
                        <strong><%= lesson.title %></strong>
                  <% end %>
                </h3>
              </div>
              <div class="panel-body">
                <td><%= lesson.summary %></td>
              </div>
            </div>



我做错了什么?为什么不起作用?

@Pramod Gupta是对的。此外,还可以考虑将演示器用于这种用于装饰视图的逻辑。

@Pramod Gupta是正确的。另外,请考虑使用演示器来实现这种用于装饰视图的逻辑。

请更改脚本

 <% @lessons.each do |lesson| %>

          <% if current_user.completed_steps.include? lesson %>  
            <div class="panel panel-success">
          <% else %>
            <div class="panel panel-danger">
          <% end %>
              <div class="panel-heading">
                <h3 class="panel-title">
                  <%= link_to(lesson) do %>
                        <strong><%= lesson.title %></strong>
                  <% end %>
                </h3>
              </div>
              <div class="panel-body">
                <td><%= lesson.summary %></td>
              </div>
            </div>



请更改脚本

 <% @lessons.each do |lesson| %>

          <% if current_user.completed_steps.include? lesson %>  
            <div class="panel panel-success">
          <% else %>
            <div class="panel panel-danger">
          <% end %>
              <div class="panel-heading">
                <h3 class="panel-title">
                  <%= link_to(lesson) do %>
                        <strong><%= lesson.title %></strong>
                  <% end %>
                </h3>
              </div>
              <div class="panel-body">
                <td><%= lesson.summary %></td>
              </div>
            </div>



您需要传递与for循环中给定的对象相同的对象

<% @lessons.each do |lesson| %>

<% if current_user.completed_steps.include? lesson %>  
            <div class="panel panel-success">
          <% else %>

您需要传递与for循环中给定的对象相同的对象

<% @lessons.each do |lesson| %>

<% if current_user.completed_steps.include? lesson %>  
            <div class="panel panel-success">
          <% else %>


我想你应该把
改成
。这可能行得通。就是这样,谢谢!!真不敢相信事情竟那么简单。我想你应该把
改成
。这可能行得通。就是这样,谢谢!!真不敢相信事情竟那么简单。哎呀。