0

このbefore_filterは、更新前に検証するか、キャプチャが正しい場合はレコードを作成します。
間違っていると前のページに戻りますが、入力データはすべて失われます。前のページで入力した入力データを残すにはどうすればよいですか。

before_filterを使用して、これらの2つのアクション「update」と「create」を適用したいと思います。送信がどこから来たのかを検出し、「新規」または「編集」を再レンダリングする場所を切り替える必要があります

before_filter :simple_captcha_check, :only => [:update, :create] 

def simple_captcha_check
    if !simple_captcha_valid?
        flash[:error] = 'Wrong Captcha!'
        redirect_to :back
    end
end
4

1 に答える 1

1

モデルを作成/更新しているとするとUser、コードは次のようになります。

def simple_captcha_check
  if !simple_captcha_valid?
    flash[:error] = 'Wrong Captcha!'

    if request.put? # We came from an edit request
      @user = User.find(params[:id])
      @user.attributes = params[:user]
      render :action => :edit
    elsif request.post? # We came from a new request
      @user = User.new params[:user]
      render :action => :new
    end
  end
end
于 2012-12-22T12:45:15.173 に答える