2011-07-01 14 views
0

私はRailsとそのすべてのRESTの概念に慣れていません。Rails3:初期ユーザープロファイルフォーム、RESTかどうかどのURLをお勧めしますか?

登録したユーザーに短いフォーム(プロフィール情報)を記入してもらいたいです。
残念ながら、/users/edit REST URLには既にパスワード変更ダイアログが含まれています。
このパスワード変更ダイアログを最初の短い形式に含めたくない場合は、非常に混乱します。

どのようなURLを使用しますか?どのようにそれをルーティングするには?

注:私は認証にDeviseを使用しています。

答えて

0

私の心に来る最初の答えはおそらく最良の選択肢ではありませんが、それはあなたが正しい道を始めるようにするべきです。ユーザーがサインアップは、ユーザーに/アクションを作成

はこのような何かを:あなたは

if params[:survey] == "1" 
    render :action => "survey" and return 
end 

redirect_to edit_user_url(@user, :survey => "1") and return

し、そのユーザーで/ editアクションは、これを行いますviews/usersフォルダには、survey.html.erbまたはshort_form.html.erbを持っているかどうかを確認してください。そこにあなたのフォームを入れてください。それは、ユーザーを編集するつもりなら、標準の編集フォームのように動作させるが、パスワードなどのものは除外する。

この方法で、アンケート(または短いフォームなど)にリンクすることができますが、アカウントを作成すると通常は表示されます。

編集ユーザービューを表示したいが、1つのオプション(パスワードフィールド)を省略したい場合は、上記のようにnew_user => "1"を使用して編集アクションにリンクすることを検討するとよいでしょう。そのパラメタのビューテストで、パスワードフィールドが表示されていない場合は表示されます。それはおそらく最善のアイデアではありませんが、表示されないように1つまたはいくつかのフィールドだけが必要な場合は、私がやっている方向に傾いているでしょうが、そうでなければ同じフォームを持っています。一部の人々は、ビュー内の条件文が真実ではないと思っていますが、それが控えめに行われた場合は問題ありません。

あなたが探しているのは、まったく関係のないアクションです。ユーザーを編集することとはまったく関係がありません。新しいRESTfulアクションをモデルに追加する必要があります。 http://guides.rubyonrails.org/routing.html、特に「2.9もっとRESTfulなアクションを追加する」を参照してください。

関連する問題