0

Ruby 1.9.3 と Rails 3.2.6 を使用しています。ユーザーが友達を招待してサインアップできるページを作成したいと考えています。このページには、ユーザーが電子メール アドレスを入力できるいくつかのフィールドが含まれます。これらを配列に格納したいと思います。基本的に、ページの各フィールドは配列内の要素になります。私の希望は、配列要素をループし、入力された各電子メール アドレスを確認し、テーブルの一時電子メール フィールドを更新してから、ActionMailer を起動して招待電子メールを送信することです。

ユーザーが招待ページにアクセスするたびに、この配列を初期化したいと思います。本書Programming Ruby 1.9で読んだことから、このような配列をどこかで宣言できるはずです。

friend_email = Array.new

ビューに入力されたデータを検証するときに、コントローラーで変数にアクセスできるように、十分な時間変数を使用できる必要があります。変数についての私の限られた理解から、それらは通常、初期化されていると宣言されている場所以外では使用できません。これは、入力された情報をメーラーに送信しようとするときに興味深いものになります。モデルで一時フィールドを使用して、物事を単純化しました。

これを行うためのより良い方法があれば、情報をいただければ幸いです。私も研究を続けます。私が見たのは、既存のテーブルによって配列が取り込まれ、ビューに表示される、以下にリストしたものだけです。ビューから配列にデータを入力したい。

ruby on railsでビューに配列をレンダリングする

どんな助けでも大歓迎です。

4

2 に答える 2

0

電子メール アドレスのリストを表示/処理するだけの場合、Active Record (AR) モデルがどのように関与しているかがわかりません。dbms に含める必要がなく、AR モデルに関与していない場合は、AR モデルを関与させないでください。

あなたの質問のタイトルに答えるには: "Declare Array Variable To Use In A Ruby On Rails View" --

A: コントローラーで配列をインスタンス変数として宣言します。(インスタンス変数は @ で始まります) コントローラーで宣言されたすべてのインスタンス変数は、ビューで自動的に使用可能になります。

def show_emails
  @emails = []
return  # the view "show_emails" will be used

def process_emails
  @emails = params['emails'] || []

  ...
     # check the emails. If there's a bad one, you can 
     #   re-render the show_emails view with an error msg
     # or send out the emails and then show a confirmation page
end
于 2012-07-27T18:55:05.663 に答える
0

さて、この問題への良いアプローチはtext_field、ユーザーがコンマ/コロン/セミコロンなどで区切られた電子メールを入力する単一の使用であり、送信されると、コントローラーはsplitメソッドを使用してこれらの電子メールを分離し、いくつかの正規表現、次にそれらのそれぞれを検証します。検証に合格すると、一連の電子メールが手元にあります。
これを行うために配列が本当に必要だとは思いません。

于 2012-07-27T18:20:05.013 に答える