シングルトンとしてネストした継承されたリソースを作成するにはどうすればよいですか。

StackOverflow https://stackoverflow.com//questions/9696125

質問

inherited_resourcesを使用してコントローラを乾かしますが、特定のコントローラを正しく振る舞う方法を理解できません。私のモデルでは、User has_one Person。ネストしたときにシングルトンとして、そしてネストされていないときは、シングルトンとして揺れています。言い換えれば、私はすべての既知の人々(/人)をリストし、人物#5(/ person / 5)を取得し、ユーザー10の唯一の人(/ユーザー/ 10 /人)を取得することができるようにしたいです。 Routes.rb:

resources :users
  resource :person
end
resources :people
.

...私が期待するようにルートを設定します:

         user_person POST   /users/:user_id/person(.:format)                people#create
     new_user_person GET    /users/:user_id/person/new(.:format)            people#new
    edit_user_person GET    /users/:user_id/person/edit(.:format)           people#edit
                     GET    /users/:user_id/person(.:format)                people#show
                     PUT    /users/:user_id/person(.:format)                people#update
                     DELETE /users/:user_id/person(.:format)                people#destroy

              people GET    /people(.:format)                               people#index
                     POST   /people(.:format)                               people#create
          new_person GET    /people/new(.:format)                           people#new
         edit_person GET    /people/:id/edit(.:format)                      people#edit
              person GET    /people/:id(.:format)                           people#show
                     PUT    /people/:id(.:format)                           people#update
                     DELETE /people/:id(.:format)                           people#destroy
.

...とても素晴らしいです。今、PeopleControllerでは、使用しています。

belongs_to :user, :optional => true
.

...で、ネストしていない/人のURLは機能しますが、入れ子/ users /:user_id / personのURLは、undefined method 'people'を使用します。

belongs_to :user, :optional => true, :singleton => true
.

... NESTED / users /:user_id / personのURLは機能しますが、ネストされていない/人のURLは、ネストしない場合でもシングルトンとして扱われているためです。

概要:ネストされたルートを介してアクセスされたときは、inherited_resourcesをシングルトンとしてリソースを処理する方法はありますが、ネストされていないルートを介してアクセスされていない場合は非シングルトンとしては?

役に立ちましたか?

解決

誰かが似たようなことをしようとしている場合、私は継承されたものを放棄するだけで終わった。私は私のコントローラの中で起こっている「魔法」が少ないので、私は幸せになると思っています。

他のヒント

明らかにサポートされていない: https://github.com/josevalim/inherited_resources/issues/169

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top