0

簡単な質問で申し訳ありませんが、RubyonRailsチュートリアルブックをフォローしようとすると少し混乱します

私は第10章にいて混乱しています。はい、学習目的で自分のバージョンを少しだましているので、customercustomers_controller.rbというコントローラーがあります。

def show
    @customer = Customer.find(params[:id])
    @posts = @customer.posts
end

次に、次のフォルダー_post.html.erbがあります。

Welcome to a post

ショーの顧客ファイルから彼が呼び出したものは、/ view / customer/show.html.erbをフォローしています。

<% provide(:title, @customer.name) %>
<aside class="customer_show_nav">
<h1><%= @customer.name %></h1>
<%= @customer.email %>
</aside>

<div class="events">
    <%= render @posts %>
</div>

しかし、何もロードしないと、彼の表示も投稿へようこそ。私は何を間違っていますか?前もって感謝します。私はチュートリアルhttp://ruby.railstutorial.org/chapters/user-microposts#top10.22に従っています

4

2 に答える 2

0

パーシャルの説明を探します。

于 2012-07-20T00:25:02.520 に答える
0

_post.html.erb入っている場合view/customers

あなたはこれを行いますview/customers/show.html.erb

<%= render 'controller_where_post_lives/post' %>を探しますcustomers/_post.html.erb

場合によっては、Rails 3も使用する必要=があります<%= %>

また、show は 1 つのアイテムを表示するために使用され、index はすべてのアイテムを表示するために使用されます。

したがって、レンダリングするには、次のことを行います

<%= render :partial => "post", :collection => @posts %>

編集:

render を呼び出すと、ビューが渡されます。ここにはオブジェクトはありません。上記のようにコレクションを渡さない限り。

http://guides.rubyonrails.org/layouts_and_rendering.html

また、テキストをレンダリングしたいだけの場合は、次のことができますrender :text => "OK"

于 2012-07-19T21:34:00.213 に答える