2013-05-09 2 views
0

나는 (이 경우 first_name에서) PARAMS가 비어있는 경우, 또는 형태param이 비어 있거나 비어 있으면 업데이트 속성을 거부하는 방법은 무엇입니까?

보기

<%= simple_form_for User.new do |f| %> 
    <%= f.input :email %> 
    <%= text_field_tag "user[data[first_name]]" %> 
    <%= f.button :submit %> 
<% end %> 

컨트롤러 번호가 업데이트 사용자 hstore을 거부하는 방법 date 속성을

@user = User.find_or_initialize_by_email(params[:user][:email]) 

if @user.update_attributes(params[:user]) 
    ... 
을 만들 수 있습니다 공백?

+1

'User' 모델에 대한 검증을 사용하고 있습니까? –

+0

유효성 검사 : 사용자 모델 – MrYoshiji

답변

1

제 생각에는 create 작업에 잘못된 전략을 사용하고 있습니다. 당신과 같이 레일 '유효성 검사를 사용 email 사용자에서 독특한 있는지 확인하려면 그냥

@user = User.new(params[:user]) 
@user.save 

을 수행

class User 
    #... 
    validates_uniqueness_of :email 
    #... 
end 

동안 동일한 이메일과 기존 사용자를 수정합니다 귀하의 접근 방식 창조. 소리가 틀립니다.

자세한 내용은 스캐 폴딩 컨트롤러의 create을 참조하십시오.

+0

에 'validates : first_name, presence : true'를 사용하여 hstore 데이터 열에 모든 새 필드를 저장합니다. 기존 사용자를 재정의 할 수 있기를 원합니다. – tomekfranek