2

私は車輪が初めてで、まだ学んでいます。フォームのすべての投稿は、特定のモデルのメソッドにマップするアクションを呼び出す必要があるようです。ただし、フォームがそれ自体に投稿することは可能ですか?

私が避けたいのは、アクションビューに直接移動する人々です-これはエラーをスローするようです. また、自分のビュー フォルダーにたくさんの空のファイルを配置する必要がなくなる可能性があるため、多くの自己投稿を行いたいと考えています。

私が考えていたもう 1 つの利点は、フォームが自己投稿である場合、それをグローバルに使用できるという利点があるという事実でした。たとえば、ヘッダーに、ユーザーが Web サイトの任意の場所に入力するフォームがあるとします。または、ユーザーがどこから来たのかを検出し、動的に redirectTo を実行する方法はありますか?

どうもありがとう、マイケル。

4

3 に答える 3

2

ユーザーがアクションを参照することによるエラーを回避するにpostは、検証を参照してください: http://cfwheels.org/docs/chapter/verification

したがって、createアクションはコントローラーの次updateのように構成されます。init

<cffunction name="init">
    <cfset verifies(only="create,update", post=true, params="comment", paramsTypes="struct")>
</cffunction>

フォームが送信された後、ユーザーを前のページにリダイレクトすることは不合理ではありません。redirectTo(back=true)あなたの成功のアクションを 見てください。http://cfwheels.org/docs/1-1/function/redirectto

<cffunction name="init">
    <cfscript>
        verifies(only="create,update", params="comment", paramsTypes="struct");
        provides("html,json");
    </cfscript>
</cffunction>

<cffunction name="create">
    <cfscript>
        comment = model("comment").new(params.comment);
        comment.save();

        if (isAjax())
        {
            renderWith(comment);
        }
        else
        {
            if (comment.hasErrors())
                redirectTo(back=true, error="There was an error saving the comment.");
            else
                redirectTo(back=true, success="The comment was posted successfully.");
        }
    </cfscript>
</cffunction>

はい、AJAX は優れたソリューションであるという Craig の回答が気に入っていますが、AJAX が失敗し、フォームが非 AJAX リクエストを介して最終的に URL に投稿された場​​合にどうなるかを考慮する必要もあります。完全にアクセス可能なエクスペリエンスを提供するのが最善です。

于 2012-04-18T20:56:24.117 に答える
2

Michael さん、Ajaxy のようなフォームを作成することを検討してください。つまり、jQuery などを使用してフォーム データをリモート CFC メソッド (つまり、access 属性が "remote" に設定されているメソッド) に送信することができます。その CFC は通常どおり魔法のように機能し、ビューで実行する適切な応答を返すことができます。

Wheels ドキュメント " Wheels, Ajax and You "へのリンクは次のとおりです。そのセクションにはいくつかの素晴らしいものがあり、それはあなたがここで探しているものかもしれません!

于 2012-04-18T20:21:46.367 に答える
1

Wheels について私が知っていることは、Ruby on Rails にインスパイアされた独自の MVC フレームワークだということです。フォームをそれ自体に投稿してコントローラーをバイパスすることにより、Model-View-Controller パターンを回避するためのヘルプを要求しています。これは、そのようなフレームワークでは不可能であるか、少なくとも推奨されるべきではありません。

優れた MVC フレームワークでは、モデル、ビュー、場合によってはコントローラーをグローバルに再利用できます。

于 2012-04-18T19:45:53.703 に答える