RoR:如何为部分定义方法?

RoR: How to define a method for a partial?

我正在尝试在页面上呈现部分...就像这样

../devise/sessions/new.html.erb

<%= render partial: '/tweets/latest_tweets' %>

一切顺利

在部分中,我想像这样“每个做”...

../tweets/_latest_tweets.html.erb

<% @tweets.each do |tweet| %>
 <%= tweet.content %>
<% end %>

我得到了 nil:NilClass

的未定义方法“each”

如何在我的推文控制器中为我的部分定义此方法?

我有这样的索引

tweets_controller.rb

    def index
        @tweets = Tweet.all
    end

这对索引没问题,但我不知道如何对我的部分做同样的事情(我试过像索引一样定义我的部分,但这似乎不起作用)

谁有我可以尝试的解决方案?

渲染局部时需要传入collection。它会给出这样的东西:

devise/sessions/new.html.erb

<%= render partial: 'tweets/latest_tweets', collection: @tweets, as: :tweet %>

tweets/_latest_tweets.html.erb

<%= tweet.content %>

就这样,它会自动遍历你的collection。

更多信息,请阅读Rails - Layout and Rendering