Rails - make_resourceful с вложенными ресурсами - PullRequest
0 голосов
/ 28 января 2009

Я использую плагин 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

и т.д.

1 Ответ

0 голосов
/ 29 января 2009

Хорошо - я исправил это сам.

Я упустил некоторый код из вопроса, чтобы упростить его, но это было источником проблемы. (Отредактировал вопрос, чтобы вернуть его обратно)

Исправлено изменение метода current_objects на

def current_objects
    @current_objects ||= @client.client_regions.paginate(:page => params[:page], :order => "name")
end

Вполне очевидно, что в ретроспективе ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...