如何在另一个视图/索引中呈现视图/索引?

时间:2016-11-16 17:19:37

标签: ruby-on-rails ruby

我不明白如何在我的 welcome / index.html.erb 文件中插入代码。这是我的代码:

Welcomes_controller.rb

def index
  @welcomes = Welcome.all
end

Schedules_controller.rb

def index
  @schedules = Schedule.all
end

的时间表/ index.html.erb

          <table class="table table-hover">
            <thead>
              <tr>
                <th>Время<br>отправления</th>
                <th>Город</th>
                <th>Место<br> отправления</th>
                <th>Время <br>прибытия</th>
              </tr>
            </thead>
            <tbody>
            <% @schedules.each do |s| %>
              <tr>
                <td><%= s.deptime %></td>
                <td><%= s.city %></td>
                <td><%= s.street %></td>
                <td><%= s.aparttime %></td>
              </tr> 
            <% end %>             
            </tbody>
          </table>

如何将该代码插入welcome / index.html.erb?

2 个答案:

答案 0 :(得分:0)

使用内容

创建部分<table class="table table-hover"> <thead> <tr> <th>Время<br>отправления</th> <th>Город</th> <th>Место<br> отправления</th> <th>Время <br>прибытия</th> </tr> </thead> <tbody> <% schedules.each do |s| %> <tr> <td><%= s.deptime %></td> <td><%= s.city %></td> <td><%= s.street %></td> <td><%= s.aparttime %></td> </tr> <% end %> </tbody> </table>
app/views/schedules/index.html.erb

然后,<h1>Schedules</h1> <%= render partial: "shared/index_table", :locals => { schedules: @welcomes } %>

app/views/welcomes/index.html.erb

<h1>Welcome</h1> <%= render partial: "shared/index_table", :locals => { schedules: @schedules } %>

Welcome

仅当您在Schedulesurvey = { title: title, description: description, Questions:[ { question_type: 'Radio', question: 'q1', Options:[ { option: 'o1' }, { option: 'o2' } ] } ] } 型号上拥有相同的属性集(deptime,city,street,aparttime)时才有效

答案 1 :(得分:0)

从welcome_controller.rb

呈现计划索引模板
def index
  @welcomes = Welcome.all
  render "/schedules/index"
end

但是,这会出现问题,因为视图中的表依赖于要设置的@schedules实例变量,并且它将返回nil,因为它未在控制器中分配值。 / p>

您可能想要这样做:

def index
  @schedules = Welcome.all
  render "/schedules/index"
end

从语义的角度来看,这对我来说并没有多大意义。您可能希望将实例变量重命名为更模型不可知的内容。

在另一个答案中,建议使用部分答案。根据用例,这实际上可能是更好的解决方案。