2009-05-13 6 views
3

私は多くのフィールド(ほぼ40)を持つモデルを持っています。クライアントは、複数の画面に分割されたフィールドを必要とします。モデルには同じモデルの一部であるように見えるいくつかのhas_manysもあります。Rails、One Model、Many Screens

モデルをどのように分けることができますか、それを行う方法のトレードオフは何ですか?

私は可能性のカップルを参照してください。フォームの部分を表示し、非表示にする

1)JavaScriptを使用します。私はその1つの仕事をすることができると思う。

2)異なるアクションに送信するフォームを使用します。 form_forを適切なオプションとともに使用できますか?

他のアイデアも探しています。

答えて

2

チェックアウトacts as state machine。これを使ってウィザードやその他のものを作成することができます。

あなたの質問を読んで、私はJavascriptがあなたが探しているものだと思います。 jQuery UIをチェックしてください。おそらく役立つタブコンポーネントがあります。

+0

リンクありがとうございました。 ステートマシンをよく理解していますが、ステートを持つ必要はなく、特定の順序で処理する必要もないので、これがどのように役立つか分かりません。または、私が州を持っている場合、どのようにページのフォームの特定の部分を取得し、それらを適切に更新するのですか? – Chris

+0

多分私はその質問を誤解していました。アイテムを表示したり隠したりするだけの場合は、Javascriptを使用してください。 1つのフォームの内容を複数のページに分割する場合は、SSMを使用してページを追跡したり、ページ間を移動する仕組みを提供したりすることができます。あなたの質問を読んで、私はJavascriptがあなたが探しているものだと思います。 jQuery UIをチェックすると、おそらく役に立つタブコンポーネントが得られます。 –

+0

私はjQuery UIとタブを使用するように書いていきましたが、この唯一の問題はユーザビリティーにある可能性があります。検証エラーが発生している場所はユーザーには分かりません。 –

1

ActsAsWizardプラグインをチェックアウトします。このようなウィザードを行うのは非常に簡単です。

readmeをご覧ください。それは優れています。

+1

ActsAsWizardでは、1つのモデルの40個のフィールドをモデルに分解する必要があることに注意してください。 1つの大きなモデルを構築するのではなく、ウィザードを使用してオブジェクトとその関係のデータ入力を構築するのは本当に多くのことです。 – srboisvert