2016-05-17 78 views
-1

我開始使用軌道上的ruby,我想嘗試的第一件事是修改「Todo應用程序」示例。 我做到這一點的教程:https://www.youtube.com/watch?v=fd1Vn-Wvy2w嘗試修改「Todo應用程序」

我完成後,我看到,當我點擊了todo_list,它會重定向到「show」的形式todo_list,但現在我要上index與「show」顯示全部爲todo_list。我試圖寫

<%= todo_items.content %> 
index頁面上

,但它得到了一些錯誤。是否有任何解決方案,或者我應該修改控制器頁面上的東西,這樣

todo_items.content

應該能夠顯示Index頁面

+0

歡迎SO!請瀏覽[如何提問](http://stackoverflow.com/help/mcve)。 – Uzbekjon

+5

我們是否期望觀看視頻以瞭解「Todo應用程序」是什麼? –

+0

只是確保你知道我關注的應用程序 – vicnoob

回答

2

您需要先加載在你的控制器操作的項目上:

def index 
    @todo_items = TodoItem.all 
end 

然後在index.html或任何模板要渲染的這個動作可以渲染這個集合:

<%= render @todo_items %> 

應呈現todo_item部分,您應該根據您的視頻位於/app/views/todo_items/_todo_item.html.erb創建部分。或者,你可以這樣做:

<% @todo_items.each do |item| %> 
    <%= item.content %> 
<% end %> 

在控制器:

def index 
    @todo_lists = TodoList.all 
end 

鑑於:

<% @todo_lists.each_with_index do |list, index| %> 
    List <%= index + 1 %> todos: 
    <%= render list.todo_items %> 
<% end %> 
+0

感謝它似乎工作,但這將顯示在每個Todo_list下所有todo_list的項目,我想要做的只是顯示它下面的列表項目 – vicnoob

+0

我想要的東西就像在該示例的「顯示」頁面中一樣 <%= render @ todo_list.todo_items%> 但現在的錯誤是「未定義的方法'todo_items'爲零:NilClass」,我不知道現在應該放在todo_list控制器中 – vicnoob

+0

@vicnoob查看更新 – rmagnum2002