显示TODO列表中每个人的所有任务

时间:2012-12-22 23:02:47

标签: ruby-on-rails

我试着更清楚地问我的问题,因为我认为人们不理解我:

我申请了:RUBY ON RAILS的TODO LIST。

我想创建类似的东西:

enter image description here

我成功创建了第一部分(Tasks Workers),但只创建了:name,num_of_tasks,num_tasks_left。

现在我要创建:“显示任务”。

当用户按下“任务”链接时,他将直接进入包含所有任务的页面(带有编辑和删除选项)。

例如,如果用户在姓名为“Alon”的人的行中按下“任务”的链接,他将指向一个页面,向他显示第二部分(任务的Alon)。 / p>

为了获得此输出,我需要添加什么?同时我有一个tasks_controller。

在我解释另一件事之前,我想让你知道第一部分(Tasks Workers)。有一个变量:名称。在每一行中,我打印变量名称(他传递所有数据库)。

为什么我不能做下一步呢?

1)在tasks_controller中添加一个变量:

def show_tasks
    @tasks = Task.where(:name => params[:name])
    respond_to do |format|
      format.html # index.html.erb
      format.json { render json: @tasks }
    end
end

2)define:show_tasks.html.erb将显示第二部分(X的任务)

3)通过以下方式在index.html.erb中创建一个链接:

<td><%= link_to 'tasks', show_tasks_path(name) %></td>

然后对于每一行,'name'变量将发送到show_tasks.html.erb。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您应该使用嵌套资源。 Google可以帮助您查找有关它的文档。 (或点击此处:http://guides.rubyonrails.org/routing.html#nested-resources

基本上,你的情况下你会有2个控制器: TasksController和WorkersController(或TaskWorkersController)

您的routes.rb应包含以下内容:

# routes.rb
resources :workers do
  resources :tasks
end

这将生成路径&amp;你需要帮手。参考文档,如果你找不到怎么做,我可以帮助你一点但不应该太难;)

一些提示:

您的show_tasks操作将成为TasksController的index操作,如下所示:

@tasks = Task.where(worker_id: params[:id]) # works if your declared Task belongs_to Worker

您显示所有工人(Alon,Dan等)的操作将是WorkersController的index操作。

祝你好运!