ワーカーとタスクの 2 つのコントローラーがあります。
views/workers/index
内容:
<% @workers.group_by(&:name).each do |name, workers| %>
<tr>
<td><%= name %></td>
<td><%= workers.size %></td>
</tr>
<% end %>
すべてのワーカーとそのタスク数が表示されます。
「すべてのタスクを表示」という名前の別の < td >を追加し、ワーカー X のすべてのタスクを表示します。
そのためには、次のようなものが必要だと思います。
<td><%= link_to 'show all tasks', worker_task_path(name) %></td>
したがって、私は持っていますtasks_controller
:
def index
@task = Worker.where(:name => params[:id]) respond_to do |format|
format.html # show.html.erb
format.json { render json: @worker }
end
end
これはviews/tasks/index
次のとおりです。
<% @task.each do |task| %>
<tr>
<td><%= task.name %></td>
<td><%= task.task %></td>
<td><%= task.done %></td>
</tr>
<% end %>
さらに、次のように定義しましたroutes.rb
。
TODO::Application.routes.draw do
#resources :workers
#root to:"workers#index"
match '/workers/:id/index', :to => 'tasks#index', :as => 'index_task'
resources :workers do
resources :tasks
end
エラーが次のとおりであるため、routes.rb を正しく定義していないと思います。
Routing Error
No route matches {:action=>"show", :controller=>"tasks", :worker_id=>"alon"}
Try running rake routes for more information on available routes.