2009-04-21 10 views
0

管理用コントロールパネルでレールウェブアプリケーションを構築しようとしています。コントロールパネルでユーザー、プロジェクト、タスクなどを制御するためのタブ付きインターフェイスを使用したいと思います.jQueryタブのUIコントロールを使ってタブ間を切り替えたいと思っています。また、ユーザーには安静な認証を使用し、プロジェクト、タスクなどには独自のコードを使用します。rails webアプリケーションコントロールパネルとajaxタブと検証

ここで私は頭を包むことができません。通常、私は各タブのコントローラーを持っているので、バリデーションは簡単です。エラーがあると(ユーザーに言うと)、私はオブジェクトで適切なアクションをレンダリングするだけです。エラーです。しかし、私は(タブ間の異なるコントローラに)さわやかでない場合、どのようにこれは動作しますか?すべてのユーザー、プロジェクト、タスクの検証と制御(すなわち、crud操作)を備えた大規模なコントローラを1つ用意する必要がありますか?最高のデザインではないようです。

それとも私は、これは理にかなっているなど

希望を確認し、適切なCRUD /エラーのために別々のコントローラを含む「管理者」のコントローラを使用することができますいくつかの方法がありますか?

答えて

2

個別のajaxリクエストによって各タブの内容を呼び出すようにします。これは、あなたに次のような利点

  • を与えるだろう今、各タブには、簡単に別のビュー/コントローラ
  • することができますが、それだけが使用されている場合、タブのための内容をロードする必要があります。ユーザーが使用しないタブのコードを処理したり、HTMLをダウンロードしたりすることはありません。

あなたは(つまり、あなたは、単一のリクエストでページのダウンロードのタブのすべての内容をロードする必要があると感じ)、このルートを使用したくない場合は、ヘルパーメソッドを使用してコードを分離でき、部分的。私の答えはこちらをご覧ください:Rails Sub-controllers?

+0

これを複雑にしてください。私の実際のプログラムは、新しいユーザーを追加するためにモーダルdivポップアップを使用します。 admin/indexアクションがあるとします。次に、別のコントローラのアクション(ユーザー/インデックス、プロジェクト/インデックスなど)からajaxを使用して各タブを読み込みます。 'ユーザーの追加'リンクは、新しいユーザー(/ users/new)を追加するためのモーダルdivを表示します。新しいユーザーを保存する際にエラーが発生した場合は、コントローラーで、エラーが発生したユーザーオブジェクトでrender:action => 'new'が必要ですが、ユーザーコントローラーにあります。 – brad

+0

だからadmin/index#usersセクションに、そのモーダルdivポップアップにユーザとエラーが表示されるようにします。しかし、ユーザーコントローラーからは、管理コントローラーでアクションをレンダリングできません。これは理にかなっていますか?私は、必要なエラーでユーザを作成するその状態に戻る方法を知らない。 – brad

+0

これをクリアするために、私は本当に管理コントローラを残したくない。ただ、それは自分のコントローラのセクションですが、私はコントローラを直接表示したくはありません。ただ、私の管理コントローラですべてのことをやりたいだけです。私は実際に管理者のコントローラを離れることなく検証する方法を理解できません – brad

0

フォームでインライン検証を個人的に使用します。 Jqueryそれはかなりwellですが、そこにあなたを助けることができるライブラリがたくさんあります。

私はそれがあなたが探していたものではないと思いますが、それはあなたの仕事を楽にします。もちろん、誰も検証をバイパスすることができないように、モデル内で検証を続けてください。