0

私はレールが初めてです。メール入力フォームがあり、検証を追加しています。これは私のコントローラーです:

 @email=params[:email]
 @BetaSignup = BetaSignup.create!(:email => @email)

そして私のモデル:

class BetaSignup < ActiveRecord::Base
  validates :email, :presence => true, :email => true
end

@BetaSignup の結果に応じて、それがメールかどうかをユーザーに伝えたいと思います。

私の見解では、次のようにするのは正しいですか?

if (<%- @BetaSignup %>) {

しかし、これは機能せず、上記の行より上のデータ (入力フィールドをクリアする) が発生しないため (または、エラーのために発生しない可能性があるため)、ビュー ファイルにアクセスすることさえできません。

想い??

4

1 に答える 1

1

create!レコードが無効な場合、コードが例外をスローするように使用しています。

それを引き続き使用して例外をレスキューすることも、例外をスローしないように変更して後でオブジェクトをチェックすることもできます。

@BetaSignup = BetaSignup.create(:email => @email)
if (@BetaSignup)
  //validations passed
else
  //validations failed
  @BetaSignup.errors // <-- validation errors are here
end
于 2012-07-03T08:33:32.993 に答える