I had a controller that was returning all the articles of my website
@articles = Article.find(all)
and a partial that used to render the @articles array.
I have changed my controller to :
@articles = User.find(1).topics.map { |t| t.articles }
So I can return some other data as well
After inspection on the Rails Console I found out that the problem is that the output array of collect does not match the Article.find(all)
Output array of find(all)
[#<Article id: 1, user_id: 2, title: "test">]
Output array of collect
[[#<Article id: 1, user_id: 2, title: "test">]]
When I’m trying to render the parcial i get:
variable:undefined method `model_name' for Array:Class
My Index
<%= render :partial => @articles%>
and then the parcial:
<%= link_to_unless_current h(article.title), article %> <%= h(article.body) %>
Does anyone knows how to overcome the problem with the double brackets [[ ]] of the array?
First, for the first line, I think you have a typo that should be
:allinstead ofall😀t.articlesreturns you a collection of articles.So
map {|t| t.articles}gives you a collection of collections of articles (the array of arrays).You could try this: