2016-05-17 92 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