온라인에서 훌륭한 예제를 찾지 못해서 쉬운 질문을하므로 쉽게 대답 할 수 있습니다. 부드럽게 다루십시오. :)모델을 사용한 사용자 정의 유효성 검사 : 실패시 저장
나는 포스트 모델이 있습니다.
p = Post.find(1)
p.title = "This is the Title of this Article"
p.url_title = "this-is-the-title-of-this-article--created-by-user-name"
게시가 생성되면 제목을 기반으로 : url_title이 생성됩니다. 이것은 지루하고 비 설명적인 ID를 노출하는 것이 아니라 데이터베이스에서 키를 끄는 방법입니다.
나는 이것을 빌드한다 : before_save에 url_title을 넣어서 valid_uniqueness_of를 사용할 수 없다. 왜냐하면 before_save가 시작되기 전에 검증이 수행되고, url_title이 유효성 검사를받는 것처럼 보이기 때문이다.
그래서, 다음을 보장해야합니다. url_title은 고유해야합니다. 다른 사용자의 동일한 제목을 여러 번 사용할 수 있도록 "--created-by-# {p.user.name}"을 추가합니다.
그래서 내가해야 할 일은 다음을 확인하는 사용자 지정 유효성 검사를하는 것입니다. url_title은 저장하기 전에 데이터베이스에 고유하며, 고유하지 않으면 사용자에게 알리고 사용자에게 알립니다.
가장 좋은 방법은 생각하나요? '
아차 url_title하기 위해 적절한 유효성 검사를 추가 url_title
을 만들 수 있습니다. 나는 중요한 부분을 생략했다. 내 개정 된 게시물을 참조하십시오. –