2011-01-19 5 views
1

ファームモデルでネストされたWorkerモデルがある場合、Workerコントローラ(WorkWorkerコントローラ)(FarmWorkersController)にWorkerリソースを正しくロードするにはどうすればよいですか?私はこの...ネストされたモデルの名前がコントローラ名と異なる場合、cancanを使用してネストされたリソースをロードするにはどうすればよいですか?

class FarmWorkersController < ApplicationController 
    load_resource :farm, :parent => true 
    load_resource :class => 'Worker', :through => :farm, :parent => false 

    # Note that :parent and :class need to be specified on the Worker resource line, 
    # as the name of the controller (FarmWorkersController) is different from Worker model name 
end 

を試してみた...しかし、私は

undefined method `farm_workers' for #<Farm:0xa87670c> 

注エラーを取得すること、私は労働者のコレクションを返すファームモデルに)(ゲッターをfarm_workersを定義した場合、私はエラーを取得しません - Workersコレクションは、インデックスアクションのために読み込まれていません。いずれにしても、コントローラー認証を行うために私のモデルを汚染したくありません。

(それは問題ではないはずですが、私はmongoid使用しています)

答えて

3

テストされていないが、ドキュメント/コードに従って、あなたはload_resourceの最初の引数として名前を指定することができるはずです。

load_resource :worker, :class => 'Worker', :through => :farm, :parent => false
+0

ありがとうAndy、私はあなたの答えを試しました(load_resource:load_resource 'workers'の代わりにworker)。そして、それは働いたようです!私は基本的に最初の議論を省略しました。ありがとう! –

+0

私の答えを修正しました。 –

関連する問題