2012-07-19 232 views
0

對不起,一個簡單的問題,但我有點困惑試圖按照Ruby on Rails的教程書渲染在Rails視圖

我在第10章和困惑,是我欺騙了一下學習的目的我的版本 所以我有一個叫做客戶 控制器customers_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> 

但是裝沒事的時候他的出現甚至不歡迎一個職位。我做錯了什麼? 在此先感謝。您在view/customers/show.html.erb

<%= render 'controller_where_post_lives/post' %>做到這一點,這將尋找customers/_post.html.erb

有時候我下面的教程http://ruby.railstutorial.org/chapters/user-microposts#top 10.22

回答

0

如果_post.html.erbview/customers

,還需要=<%= %>與軌道3

另外,show用於顯示一個項目和索引用於顯示所有項目。

所以來呈現你會做

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

編輯:

當你調用渲染你給它的觀點,沒有對象這裏。除非像上面那樣傳遞一個集合。

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

此外,如果你只是想呈現的文字,你可以做render :text => "OK"

+0

_post是在它自己的看法,它有自己的控制器視圖等... – Jseb 2012-07-19 21:36:21

+0

職位生活在文件夾視圖/ posts/_post.html.erb所以我嘗試以下渲染 <%= render posts/@ posts% > <%= render posts/@ post%> <%= render @ posts/@ posts%> 但是沒有工作我還想做什麼? – Jseb 2012-07-19 21:42:12

+0

謝謝,<%render'posts/post'簡單地工作,是否有可能從其他控制器呈現索引? – Jseb 2012-07-19 21:47:36