0
저는 두 개의 컨트롤러 인 작업자와 작업이 있습니다.두 컨트롤러와의 세션
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
입니다 :
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
을 정의
<% @task.each do |task| %>
<tr>
<td><%= task.name %></td>
<td><%= task.task %></td>
<td><%= task.done %></td>
</tr>
<% end %>
Routing Error
No route matches {:action=>"show", :controller=>"tasks", :worker_id=>"alon"}
Try running rake routes for more information on available routes.
감사합니다! 거의 작동합니다. 내 문제는 (예를 들어) 알론 직원의 "작업 표시"를 누르면 http : // localhost : 3000/workers/alon/tasks 페이지로 이동하게되며이 페이지는 비어 있으며 작업의 내 색인 페이지를 표시하십시오. –
레일즈 기본 동작은 (숫자) 기본 키를 사용하여 자원에 대한 경로를 작성하는 것입니다. 'workers/1/tasks' 대신에 친숙한 URL을 원한다면 friendly_id 젬 (https://github.com/norman/friendly_id)을 사용해보십시오. – Jef