2016-11-16 5 views
0

Я не понимаю, как вставить код в мой 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> 

Как вставить этот код в Добро пожаловать/index.html.erb?

+0

Возможный дубликат [Один рендеринг контроллера с использованием взглядов другого контроллера] (http://stackoverflow.com/questions/1013152/one-controller-rendering-using-another-controllers-views) – sahil

ответ

0

создать частичную app/views/shared/_index_table.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> 

Затем, 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 } %> 

Это работает только если у вас есть один и тот же набор атрибутов (deptime , город, улица, отдельно) на Welcome и Schedule модели

0

Оказать шаблон индекса графики из welcomes_controller.rb

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

Однако, это будет представлять собой проблему, так как таблица в представлении зависит от переменной @schedules экземпляра, чтобы установить и вернет nil, потому что ему не присвоено значение в контроллере.

вы можете сделать это:

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

Что на самом деле не имеет смысла для меня с семантической точки зрения. Возможно, вы захотите переименовать переменную экземпляра в нечто большее, чем агностик.

В другом ответе было предложено использовать частичный. Это может быть лучшим решением в зависимости от варианта использования.

Смежные вопросы