1

実際にDBに保存する前に、入力した情報を確認する方法を作ろうとしている

ここで議論されているように、個別の確認ページを作成することを検討しました

Ruby on Rails: ActiveRecord オブジェクト作成の確認ページ

ただし、私のフォームにはペーパークリップを使用した添付ファイルが含まれているため、実装が面倒です。

ユーザーが入力したばかりの情報を表示する :confirm => ポップアップを表示することだけを考えました。

問題は、ユーザーが入力したばかりの情報を表示する方法です。たとえば、

<% form_for @entry, :html => { :multipart => true } do |f| %>
  <%= f.error_messages %>


    <%= f.label :name %><br />
    <%= f.text_field :name %>

    <%= f.label :file %><br />
    <%= f.file_field :file %>

    <%= f.submit 'Create', :confirm => "????? " %>

<% end %>
4

3 に答える 3

1

Rails の submit メソッドの confirm オプションは、テキスト値のみを取ることができます。

確認テキストを動的に生成する場合、独自の HTML 送信タグを記述し、カスタム JavaScript を記述して、生成されたテキストで使用するフィールドを分析する方法があります。

または、Rails の submit メソッドを使用して、JQuery などを使用してイベント ハンドラーを追加することもできます。

于 2009-12-10T08:24:06.227 に答える
1

添付ファイルをロードしていることを考えると、添付ファイルから派生した情報を含むステージング ビューをレンダリングして、ユーザーが確認できるようにすることは悪い考えではないかもしれません。画像の場合はファイルを表示し、テキスト ファイルの場合はテキストの最初の段落を表示します。

確認ポップアップを追加するよりも多くの作業が必要になりますが、ユーザー エクスペリエンスの向上は余分な努力に見合うだけの価値があると感じています。

私はペーパークリップの仕組みに慣れていません。したがって、あなたはほとんどの場合、親密な詳細については独力です。

ステージング ビューがアップロードされたファイルのサンプルでレンダリングされる前に、おそらくレコードを作成する必要があります。それを達成するために、問題のモデルに「アクティブな」列を設定しましたが、デフォルトは false です。

使用法は次のようになります。

  1. ユーザーが新しいフォームに入力します。
  2. 添付ファイルが更新され、アクティブ フィールドが false に設定された状態でレコードが保存されます。
  3. 基本的に、確認リンク/ボタンとキャンセル リンク/ボタンがある表示ページである確認ページにリダイレクトされます。
  4. を。確認リンク/ボタンがクリックされると、コントローラにリクエストが送信され、このレコード設定の更新アクションが true にアクティブになります。

    b. キャンセル リンク/ボタンをクリックすると、このレコードの破棄アクションをトリガーするリクエストがコントローラーに送信されます。

あとは、非アクティブで、ユーザーがブラウザー セッションを終了したばかりと見なすのに十分な時間前に作成されたオブジェクトを削除する繰り返しタスクを設定するだけです。

于 2009-12-10T20:15:53.473 に答える
1

js を onclick ハンドラに投げるだけです。それがRailsのすべてです。

<%= f.submit 'Create', :onclick => "confirm('Name is ' + $F('entry_name'));" %>

(注、テストはしていませんが、よく似ています。confirmはコアjs関数であり、libの一部ではありません)

于 2009-12-10T14:26:01.907 に答える