Ruby on rails Ruby on Rails Collect返回封闭数组(变量:未定义的方法`model_name';for array:Class)
我有一个控制器返回我网站上的所有文章Ruby on rails Ruby on Rails Collect返回封闭数组(变量:未定义的方法`model_name';for array:Class),ruby-on-rails,ruby,arraycollection,Ruby On Rails,Ruby,Arraycollection,我有一个控制器返回我网站上的所有文章 @articles = Article.find(all) 以及用于呈现@articles数组的分部 我已将控制器更改为: @articles = User.find(1).topics.map { |t| t.articles } 所以我也可以返回一些其他数据 在Rails控制台上检查之后,我发现问题在于collect的输出数组与Article.find(all)不匹配 查找的输出数组(全部) 我的索引 <%= render :partial
@articles = Article.find(all)
以及用于呈现@articles数组的分部
我已将控制器更改为:
@articles = User.find(1).topics.map { |t| t.articles }
所以我也可以返回一些其他数据
在Rails控制台上检查之后,我发现问题在于collect的输出数组与Article.find(all)不匹配
查找的输出数组(全部)
我的索引
<%= render :partial => @articles%>
@articles%>
然后是帕西亚尔:
<%= link_to_unless_current h(article.title), article %> <%= h(article.body) %>
有人知道如何克服数组的双括号[[]]的问题吗?首先,对于第一行,我认为您的打字错误应该是
:all
,而不是all
:D
t.articles
返回文章集合
因此,map{| t | t.articles}
为您提供了文章集合的集合(数组的数组)
你可以试试这个:
@articles = User.find(1).topics.map { |t| t.articles }.flatten.uniq
# uniq if an article could belongs to two or more topics. Otherwise it is not needed.
:全部
而不是全部…有问题吗。。?
<%= render :partial => @articles%>
<%= link_to_unless_current h(article.title), article %> <%= h(article.body) %>
@articles = User.find(1).topics.map { |t| t.articles }.flatten.uniq
# uniq if an article could belongs to two or more topics. Otherwise it is not needed.