Я использую плагин make_resourceful в своем приложении Rails и пытаюсь использовать вложенные ресурсы.
Код моего контроллера выглядит следующим образом:
class ClientRegionsController < ApplicationController
make_resourceful do
actions :all
belongs_to :client
response_for(:create) do |format|
format.html { redirect_to client_client_regions_path }
end
response_for(:update) do |format|
format.html { redirect_to client_client_regions_path }
end
end
private
def current_objects
@current_objects ||= ClientRegion.paginate(:page => params[:page], :order => "name")
end
end
То, что я хочу получить в действии index, это все client_regions для данного клиента, то есть:
client_1.client_regions
Что я на самом деле получаю, так это все регионы клиентов в системе, т.е.
ClientRegion.all
Я уже некоторое время чесал голову, поэтому подумал, что спросить здесь.
Странно то, что другие действия работают, как я ожидал, это просто действие индекса, которое является ошибочным.
Редактировать: мои маршруты определены как
map.resources :clients, :has_many => :client_regions
Итак, пути
/clients/1/client_regions
/clients/1/client_regions/new
/clients/1/client_regions/20/edit
и т.д.