Я хочу показать данные из 4 моделей в один вид. Я создал отдельный контроллер для этого named posts_controller.rb, а в представлениях я создал папку сообщений и создал файл index.html.erb.Объединение нескольких моделей в один вид Rails
После этого в файле контроллеров я добавил следующий код.
class PostsController < ApplicationController
def index
@quotes = Quote.all.order("created_at DESC")
@images = Image.all.order("created_at DESC")
@jokes = Joke.all.order("created_at DESC")
@items = (@quotes.to_a + @jokes.to_a)
end
end
И вот файл представления, где я пытаюсь показать данные из двух элементов, как сейчас. Но это не работает. Pls проверит код.
<% if @items.any? %>
<div class="col-md-12">
<% @items.each.do |item| %>
<% if item.is_a? Quote %>
<div class="postbg">
<%= quote.quotefie %>
<div class="wedate pull-right wehi">
<%= quote.created_at.strftime("%b %d, %Y") %>
</div>
<div class="clearfix"></div>
<em class="pull-right wehi" style="margin-top:20px;"> - <%= quote.author %></em>
<%= link_to 'Show', quote %>
<%= link_to 'Edit', edit_quote_path(quote) %>
<%= link_to 'Destroy', quote, method: :delete, data: { confirm: 'Are you sure?' } %>
</div>
<% else %>
<% @jokes.each do |joke| %>
<div class="postbg">
<%= joke.jokefie %>
<div class="wedate pull-right wehi">
<%= joke.created_at.strftime("%b %d, %Y") %>
</div>
<div class="clearfix"></div>
<%= link_to 'Show', joke %>
<%= link_to 'Edit', edit_joke_path(joke) %>
<%= link_to 'Destroy', joke, method: :delete, data: { confirm: 'Are you sure?' } %>
</div>
<% end %>
<% end %>
</div>
<% end %>
Произошла ошибка.
undefined method `do' for #<Enumerator:0x007fd55fb032b8>
Что ваш вопрос? – Pavan
Что не работает? – Pavan
Вышеприведенный код не работает. Я не могу показать 4 модели данных в одном представлении. – Sumeet