2011-08-05 3 views
0

사용자 이름에 특정 문자가 포함되지 않도록하여 경로에서 사용할 수있게하려고합니다. 기본적으로 www.mysite.com/profiles/username과 같은 경로를 사용하고 user.name 또는 user/name과 같은 항목을 허용하면 오류가 발생합니다. 나는 원래 validates_exclusion_of을 사용한다고 생각했지만, 이것이 전체 단어가 아닌 문자를 제외 할 수 있는지 확실하지 않습니다. 블랙리스트보다 화이트리스트에 더 나은 방법이 될지 궁금합니다. 예를 들어 화이트리스트를 0..9와 A..Z로 허용 할 수 있습니다.경로에 사용 된 사용자 이름에 대해 validates_exclusion_of을 입력하십시오.

누구나 "표준"또는 모범 사례 접근법에 대해 알고 있습니까?

+0

이러한 보석을 사용하는 데 도움이 되었습니까? http://ruby-toolbox.com/categories/rails_permalinks___slugs.html – rubish

+0

@Rubish 굽타, 링크 주셔서 감사합니다. 나는 경로에 능숙하지만 실제로는 사용자 이름에 사용할 수있는 문자를 제한해야합니다. 예를 들어 사용자는 james/posts라는 사용자 이름을 만들 수 있습니다. 실제로 다른 경로에 사용하려는 가치있는 경로 일 수 있습니다. – Oakland510

답변

1

표준 및 가장 좋은 방법은 friendly_id을 사용하는 것입니다. 그러나 프로젝트의 종속성을 높이고 싶지 않고 영숫자 만 허용하려는 경우 :

validates :user_name, 
      :format => {:with => /^\w+$}, 
      :presence => true, 
      :uniqueness => true 
관련 문제