2011-03-29 3 views
0

모델의 폼 값 (실제로는 체크 박스)의 유효성을 검사하려고하지만 유효성 검사를 통과 할 항목을 찾는 데 많은 어려움이 있습니다.레일스에서 ​​폼의 값을 검증하는 방법 3

validates :agreement, :agreement => true 

내가 좋아하는 일을 다른 일을 입수했습니다

내보기는 다음과 같습니다
validates :password, :presence => true, :length => {:minimum => 6, :maximum => 25}, :confirmation => true 

:

 <% form_for :signup_form, :url => {:controller => "user", :action => "post_signup"} do |f| %> 

...%> 및 <에 동의합니다. (서비스 약관, 컨트롤러 => "약", : 액션 => "용어") < % = link_to (%) = LINK_TO ("개인 정보 보호 정책", : 컨트롤러 => "에 대한": 행동 => "개인 정보") %> ... 다음 내 컨트롤러로 이동

:

agreement = params[:signup_form][:agreement] 

new_user = User.create(:login_name => login_name, :first_name => first_name, :last_name => last_name, :email => email, :password => password, :agreement => agreement, :created_at => DateTime.now()) 

그리고 내 모델.

미리 도움을 주셔서 감사합니다.

답변

1

위한 것이다 찾고 있습니다.

# app/models/user.rb 
class User < ActiveRecord::Base 
    validates :agreement do |ag| 
    ag.errors.add "Must agree to the terms" unless self.agreement 
    end 

end 

가 오류를 표시 할 수있는 좋은 방법을 포함한 포괄적 인 치료를 위해 http://asciicasts.com/episodes/211-validations-in-rails-3 참조 : 나는 당신의 유효성 검사를 다시 구현합니다.

+0

감사합니다. 좋은 방법으로 오류를 표시하는 것도 내가 해보려 던 일이었습니다. 컨트롤러에서 잘못된 입력을 확인하고 플래시 변수를 설정하기 전에 : flash [: signup_error] = "불완전한 양식을 찾았습니다. 다시 시도하십시오" redirect_to (: controller => "user", : action => "signup") – tarabyte

+0

니스, 당신이 이런 식으로 검증 할 수 있다는 것을 몰랐습니다. validate : method_name을 사용했습니다. – kvirani

관련 문제