文章出现的次数太多了

时间:2012-10-24 14:33:18

标签: ruby-on-rails-3

我几天前开始使用Ruby on Rails,我对each do循环有疑问。

这是我的AccueilController的代码:

def index

@postsTest = Post.last(1)
@articles = Article.last(1)
@articlesList = Article.last(2)

    respond_to do |format|
    format.html # index.html.erb
    format.json { render json: @users }
end

这是我的application.html.erb代码:

<div id="container">
    <div id="col1">
        <%= render :partial => 'shared/listArticles', :collection => @articlesList %>
        <div class="clear"></div>
    </div>
    <div id="col2">
        <%= yield %>
    </div>
    </div>
</div>

现在我的共享/ listArticles的代码:

<% @articlesList.each do |article| %>
        <div id="blocArticle">
            <div id="pic">
                <%= image_tag (article.photo.url(:thumb)) %>
            </div>
            <div id="contentArticle">
                <div id="titleArticle">
                    <%= link_to article.title, article %>
                    <div class="clear"></div>
                </div>
                <div id="contentArticleDesc">

                        <%= link_to article.desc, article %>

                    <div class="clear"></div>
                </div>

                <div class="clear"></div>
            </div>
            <div class="clear"></div>
        </div>
    <% end %>   

我的问题是,如果我写@articlesList = Article.last(2),那么最后两篇文章会出现两次;如果我写@articlesList = Article.last(3),那么最后三篇文章会出现三次等等......

当然,我希望他们每次只出现一次。

有人对问题的根源有任何想法吗?

1 个答案:

答案 0 :(得分:1)

您使用collection渲染部分内容,因此Rails会调用集合中每个项目的部分内容。从局部视图中删除循环或删除collection参数,不要同时执行这两个操作!