単一のページで単一のリソースの複数のフォームを処理する -- ruby-on-rails フィールド 関連 問題

Handling multiple forms for a single resource on a single page












0
vote

問題

日本語

私はユーザーが彼の情報を見ることができる私のRailsアプリケーションにページを持っています。

UXの理由から、ページはいくつかの形式に分けられます。 各フォームは、特定の詳細セットを更新するために使用されます。は、例えば一般的な詳細(名前、電子メールアドレス)のフォームがあります。パスワードの変更用の1つがあります。

現時点では、私は一つのフォームしかありませんが、他の人を追加したいのですが。これを処理するための最良の方法は何ですか?私は2つの主な推測を持っていますが、どちらが最善のスーツを把握することができません。

1 - 私のユーザーコントローラの私の "Update"アクション内で "ID"を各フォームに関連付けて、私の "Update"アクション内の他のステートメントを追加します。

2 - 私のコントローラ内の新しい関数(update_password、update_general_info)を作成し、ルートを使って移動します。

それを設計するための最良の解決策と流行の方法は何でしょうか?

歓声

英語

I have a page on my rails application where a user can see and change his information.

For UX reasons, the page is divided into several forms. Each form is used to update a particular set of details, for instance there is a form for general details (name, email address), one for password changes etc.

At the moment, I have only one form, but I'd like to add a few others. What is the best way to handle this? I have two main guess but can't figure out which one would suit best.

1 - Associate an "id" to each form and add some if else statements inside my "update" action in my user controller.

2 - Create new functions (update_password, update_general_info) within my controller and have a go with the routes.

What would be the best solution and a fashionable way to design it?

Cheers

</div
  
   
   

回答リスト

0
 
vote

これを行う1つの方法は、各フォームの送信ボタンに名前と値を与えることです。

<事前> <コード> InprocServer320

次のHTMLをレンダリングします。

<事前> <コード> InprocServer321

コントローラ内で<コード> InprocServer322 または<コード> InprocServer323 を追加して、そのパラメータを確認できます。

<事前> <コード> InprocServer324

ここでの大きな側はそれがディスプレイHTMLをコントローラに結合することです - コントローラを更新せずにボタンテキストを変更することはできません。

 

One way to do this is to give a name and value to the submit buttons for each of the forms.

<%= f.submit 'Update Password' %> 

Which will render the following HTML:

<input type="submit" value="Update Password" name="commit" /> 

Then in the controller you could add a case or if to check for that parameter.

def update   case params[:commit]   when "Update Password"     # Update the Password   when "Update Address"     # Update the address   else     # Default case   end    #... end 

The big downside here is that it couples the display HTML to the controller -- you can't change the button text without updating the controller.

</div
 
 

関連する質問

11  DBの内容を落とさずにRails統合テストを実行する方法  ( How do i run rails integration tests without dropping db contents ) 
私はプロダクションにプッシュする前に、私のprodデータベースのコピーに対して実行したい統合テストをいくつか書きました。これにより、すべてのルートがまだ正しいことをテストでき、すべてのページがエラーなしでレンダリングされ、複数のワークフローの一部が期待どおりに...

23  Rails 2.1では例外調節子プラグインで「未処理のビューパスが見つかった」エラーを修正する方法を教えてください。  ( How do i fix unprocessed view path found error with exceptionnotifier plugin i ) 
Rails 1.2 Webサイトを2.1にアップグレードした後、で表示パスを設定します。 それをどのように原因とし、それを修正するのですか? ...

6  RSPECコントローラー仕様でRJSをテストするための最良の方法?  ( Best way to test rjs in rspec controller specs ) 
適切なRJがコントローラの動作で生成されていることを確認するための最良の方法は? 例えば、DIVがそのように強調表示されていることを確認します。 <事前> <コード> def new render :update do |page| page.vi...

22  HTTP呼び出しをするときのRubyの頻繁なSystemExit  ( Frequent systemexit in ruby when making http calls ) 
私はRubyがRails On Railsのウェブサイトを持っています。 1日約1回、私はサービスへの呼び出しが失敗したところでSystemExit(StackTrace)エラーEメールを受信しました。それから私のサイトの瞬間にまったく同じクエリを試してみる...

16  Rails ConsoleからのデータベースIDの変更?  ( Modifying database ids from rails console ) 
私は小さなデータベースを持っており、Railsページを介してエントリを追加しています。私はエントリーの1つと "破壊されました"今私のIDのシーケンスは1つずつスキップされています。例えば、私は今、42、44を、42,43,44。 コンソールを介して新しいオブ...

14  Ruby on Railsユーザー管理エンジン/フレームワーク? (Webページ付き)  ( Ruby on rails user management engine framework with web pages ) 
かなりの投稿/推奨事項があります再鉄道承認プラグイン。しかし、私がここに尋ねているのは、ユーザーインターフェースページ(およびコントローラ/モデルなど)を含む人気/良いルビー(またはフレームワーク)があるかどうかです。そのため、(エンジン)に統合することも、次...

1  Ruby On Rails:LINK_TOでアレイを使用する  ( Ruby on rails using arrays with link to ) 
Ruby on RailsのLINK_TO法で配列を使う方法について興味がありました。例えば: コントローラ: <事前> <コード> def index @test = [1,2,3] end ビュー: <事前> <コード> <%= link_...

0  Schema_miribations上の固有の制約のためにRails Unitテストが失敗する  ( Rails unit tests fail because of unique constraint on schema migrations ) 
rake test:units を実行しようとしています。 <事前> <コード> Mysql::Error: Duplicate entry '2147483647' for key 1: INSERT INTO `ts_schema_migrations...

7  テスト中にActiveRecordオブジェクトを保存してデータをレールに保存するレールはどこで保存されますか?  ( Where does rails store data created by saving activerecord objects during tests ) 
テスト中にActiveRecordオブジェクトを保存してデータを保存するデータをどこで保存しますか? 私はその質問に対する答えを知っていたと思いました:明らかに _testデータベース。しかし、それはではないようです! RSPECテスト中に保存されたActi...

55  Railsアプリケーションでの「覚えている」の実装  ( Implementation of remember me in a rails application ) 
私のRails-Appは「覚えている」チェックボックスを持つサインインボックスを持っています。ブラウザを閉じても、そのボックスをチェックしたままにする必要があるユーザー。ユーザーのセッションにIDを保存することで、ユーザーがログインしているかどうかを追跡してい...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有