0

私の Web サイトでは、モーダル ウィンドウでログイン/登録フォームを facebox (jQuery プラグイン) を使用して実行したいと考えています。より良いもの:

  1. フォームを持つ 1 つのメソッドとテンプレートを使用してビューを作成し、facebox をこのビューに参照します。
  2. public ディレクトリに静的 HTML ファイルを作成し、この静的ページを facebox に参照させます。

私が達成したいことは次のとおりです。

  • 簡単な確認 (「ユーザー名は既に使用されています」、「パスワードの確認がパスワードと一致しません」など)。
  • 簡単な送信とリダイレクト

私はRailsは初めてで、Djangoでのフォーム検証について知っているだけなので、Djangoの場合はおそらくオプション1を選択しますが、Rubyでは別のことかもしれません.

4

1 に答える 1

1

確認を登録ページに戻す場合は、動的ページにする必要があります。

public ディレクトリの静的ページに関するもう 1 つの問題は、リンクがすべてハードコードされることです。そのため、アプリケーションがドメイン ルート (example.com/app) から離れた場所にある場合、その静的ファイルのリンクが間違っている可能性があります。

さらに、イメージを別のホストに移動する必要がある場合は、image_tag の利点が失われます。

変化しないことがわかっていて速度が必要な場合にのみ、静的リソースを使用してください。動的ページが遅すぎる場合は、それらをキャッシュすることができます。または、何か間違ったことをしている可能性があります。

更新:(最初のコメントに対処するため)

public フォルダーにいる場合、rails 関数を使用して URL を作成することはできません。JavaScript で Rails によって生成された URL が必要な場合は、Rails ビュー ページからそれらをトリガーします。一般的に、私は次のことを行います。

head タグの application.html.erb で:

<%= yield :headScripting %>

次に、javascript をトリガーしているビュー ページで:

<% content_for :headScripting do %>
    jQuery().ready(function() {
        jQuery("#placeholder").load("<%= summary_model_path(@model) %>");
    });
<% end %>

これにより、モデル コントローラー アクションから概要テキストが読み込まれますsummary。これはおそらくrender :text => "summary"、またはrender :layout => falseあなたのニーズに応じて

于 2010-04-09T00:33:53.680 に答える