0

投稿モデルがあります...このモデルをWebページのインデックスページに表示しようとしています。

<% @posts.each do |post| %>
<%= @posts[1].title %> 
<%end%>

上記のコードの問題は、投稿が3つあるため、タイトルが3回表示されることです。このコードを編集して、一度だけ表示するようにするにはどうすればよいですか。

4

2 に答える 2

0

あなたはこれをするつもりでした:

<% @posts.each do |post| %>
  <%= post.title %> 
<%end%>

列挙子は、そのeach変数を一度に 1 つずつ構文を持つブロックに渡しdo |variable|ます。postの各項目も同様@postsです。

これは、Ruby と Rails の非常に基本的な概念です。これをさらに理解しないと、おそらく先に進むことはできません。ブロックと列挙子がどのように機能するかを理解するために、Ruby プログラミング言語 (Ruby プログラミング言語の非常に優れたチュートリアルおよびリファレンス) を読んで読むことをお勧めします。

于 2012-06-29T23:20:23.257 に答える
0

「each」を使用すると、コントローラーに @posts = Posts.all があるため、すべての投稿が表示されます。これにより、これまでに書き込まれたすべての投稿が @posts インスタンス変数に与えられ、各列挙子はすべての投稿を出力します

タイトルだけを表示し、それも最初の投稿だけにしたい場合は、ビューに次のように書くことができます

<%= @posts.first.title %>
于 2012-06-30T00:31:43.867 に答える