2

数日前にRubyonRailsを使い始めましたが、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>

そして今、私のshared / 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)と、最後の2つの記事が2回表示されることです。私が書く@articlesList = Article.last(3)と、最後の3つの記事が3回表示されます...

もちろん、それぞれが一度だけ登場するようにしたいと思います。

誰かが問題の原因について何か考えを持っていますか?

4

1 に答える 1

1

でパーシャルをレンダリングしているcollectionため、Railsはコレクション内の各アイテムのパーシャルを呼び出します。部分ビューからループを削除するか、collectionパラメーターを削除します。両方を実行しないでください。

于 2012-10-24T14:36:29.143 に答える