2009-01-28 104 views
0

我在我的Rails應用程序中使用make_resourceful插件,並嘗試使用嵌套資源。Rails - 使用嵌套資源make_resourceful

我的控制器代碼如下所示:

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 

我想對指數作用對於一個給定的客戶端所有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 

+0

什麼是你的路線是什麼樣子? 我正在做這個使用make_resourceful,它對我來說工作正常。 如果您無法弄清楚,可以始終覆蓋current_objects以手動設置集合。 – 2009-01-28 17:28:24

回答

0

好了 - 我這個固定自己。

爲了簡化,我留下了一些代碼,但這是問題的根源。 (已經編輯把它的問題回)

的修復是改變current_objects方法

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

真的在事後很明顯...