2013-01-16 3 views
0

데이터를 저장하기 위해 ajax 호출을하고 있습니다. 이제 사용자는 모르는 사이에 동일한 데이터를 두 번 제출하면 중복 될 수 있습니다. 사용자가 동일한 데이터를 두 번 제출하거나 저장하지 못하게하는 지름길이나 유효성 검사가 있습니까?데이터가 이미 레일에 데이터베이스에 삽입되어 있는지 확인하십시오.

또한 사용자가 두 번째로 양식을 제출할 때 created_at, updated_at가 동일하지 않음을 유의하십시오. 또한 내 테이블에서 유일 할 수있는 유일한 것은 ID입니다.

양식 필드가 10 개이고 양식 필드가 모두 10 개 이상이 아니라면 유효성 검사기는 데이터를 거부하지 않습니다.

+0

충분히 명확하지 않습니다. 코드를 표시하고 수행하려는 작업을 자세히 설명해야합니다. – charlysisto

답변

0

당신은 '제목'과 같은 속성을 사용하고 해당 사용자에 대한 UNIQ 있는지 확인할 수 있습니다 I는 서버 측에서이 문제의 합리적인 해결책이 있다고 생각하지 않습니다

class SomeModel < AR 
    validates_uniqueness_of :title, :scope => [:user_id] 
end 
+0

동일한 값을 두 번 삽입 할 수있는 경우가있을 수 있으므로 고유성 문제는 해결할 수 없습니다. 고유 할 수있는 유일한 것은 ID입니다. 한 가지 가능한 솔루션은 잡을 수 있거나 저장할 때 데이터를 찾을 수 있습니다. 나는 모든 필드를 찾는 데 시간이 많이 걸리고 내 응용 프로그램이 느려지고 코드가 lenthy가 될 것이므로 "찾기"를 사용하는 것을 꺼려합니다. –

+0

실제로 어떤 validates_uniqueness가 수행 중인지에 대해 알고 있습니다. 그러나 더 많은 속성으로 범위를 지정하면 동일한 속성이 허용 될 가능성이 높아집니다 (예 : 한 사용자가 동일한 제목을 두 번 게시 할 수는 없지만 다른 사용자가 동일한 제목을 표시 할 수 있음). ... – charlysisto

+0

내 폼의 10 개 필드가 모두 동일하지 않으면 유효성 검사기가 데이터를 거부하지 않을 때까지 폼 필드가 10 개까지 있다는 것을 의미합니다. –

0

. 자바 스크립트 disable_with의 간단한 마술을 사용해보세요.

관련 문제