2011-07-14 11 views
2

Rails 3ではRESTfulユーザーモデルがうまく機能しています。LDAPサーバーから照会された情報に基づいて新しいユーザーを作成する新しいオプションを追加したいと思います。RESTfulアクションのベストプラクティス

私がアドバイスしたいのはこれを行うにはどのように最善の方法です。これまで考えてきたことはありますが、Railsのベストプラクティスと一致するかどうかわかりません:

Userのリソースパスを編集して、GETとPOSTの両方を "import_ldap_user"という新しいビューに受け入れます。

インポートLDAPユーザーは、AJAX(POST to import_ldap_user)を使用して、訪問者がLDAP内の人を検索できるようにするフォームを提示します。結果はページに表示され、受け入れ可能であれば、ユーザーは「作成」をクリックしてから、/ user/createを呼び出します。これは私に悪いと思われる理由の

一部は次のとおりです。

  1. 私が作成/ /ユーザーに適切な@userを投稿する必要がありますが、私は私のAJAX呼び出しが適切@userを作り出すことができるかどうかわからないんだけど。
  2. RESTfulユーザールートに新しい動詞を追加することが悪い習慣であるかどうかわかりません。
  3. AJAX POSTを使用してimport_ldap_usersを使用することが懸念事項の適切な分離であるかどうかはわかりません。

すべてのRailsの完璧主義者は、これがどのように機能すべきかについて意見を持っていますか?

答えて

2

/user/createに投稿されるものは、@userオブジェクトではなく、その属性です。スキャフォールドされた作成アクションはおそらく@user.new(params[:user])に類似しています。投稿されたユーザー属性をプルし、それに基づいて新しいオブジェクトを作成するだけです。

newメソッドで処理できる方法でAJAX呼び出しが属性を提供しない場合でも、投稿データを操作するようにcreateを変更するだけで済みます。

ベストプラクティスに関しては、これは私が過去に考えてきたものですが、「正しい」答えがあるかどうかはわかりません。 createメソッドへの投稿が完全に受け入れられるという新たな見解を持っていると思いますが、CRUDパターンに厳密に従いたい場合は、新しいコントローラを作成することもできます。

間違いなく、誰かがより良い答えを持っていれば、私はそれを聞いてみたいです。

関連する問題