私は複数のプロジェクトを持つWebアプリケーションを構築しています。一般的なデータモデルは、各プロジェクトが文書、レジスタなどの多くのリソースを持っているようなものです。Rails 3 - セッションとルーティング!
class Project < ActiveRecord::Base
has_many :documents, :registers, :employments
has_many :users, :through => :employments
class User < ActiveRecord::Base
has_many :employments
has_many :projects, :through => :employments
class Document < ActiveRecord::Base
belongs_to :project
class Register < ActiveRecord::Base
belongs_to : project
ルーティングに問題があります!プロジェクトへのC UDアクションは、ネームスペースを通じて実行されます。私が思った
「0.0.0.0:3000/:project_id/documents/
OR
'0.0.0.0:3000/:project_id/register/1/new
:ユーザーがプロジェクトを見ているときしかし、私はそのようなことのルートでPROJECT_IDをしたいです次のようなものについて:
match '/:project_id/:controller/:id'
私はセッションでproject_idを保存しますか?私はsimplierなだけのような何かのためにこれらのルートを見合わせる場合:
"0.0.0.0:3000/documents"
どのように私は、現在のプロジェクトに文書またはレジスタに任意のCRUDアクションにバインドするのです?確かに、これをすべてのコントローラーにハードワイヤ接続する必要はありませんか?
HELP!
良い音 - 私はセッションを使用して解決に向けて作業を開始していたが、今、私は真剣に二推測し始めています。重いネストを避けるため、私は自分のリソースを浅くネスティングすることを意味していますか?すなわち、ドキュメントの改訂、ドキュメントの種類など –
ええ、あなたはネストされたルーティングを過度にしてはいけません。あなたのルートを作成するのが難しくなります。ドキュメントの下に何かをネストしたいときは、ドキュメントを介してどのプロジェクトに属しているのかをすでに知っています。したがって、ルーティング内でそれをさらにネストする必要はありません。しかし、あなたはそれを行うことができます。それはあなたの選択です。これらのタイプの問題については、セッションから離れてください。 ;) – RobinBrouwer