컨트롤러의 새로운 동작에서 if else 논리를 작성하는 방식에 문제가 있습니다. 예를 들어 사용자는 user 테이블에 두 개의 서로 다른 파일을 가지고 있습니다. premium_user와 gold_user라고합시다. 사용자가 프리미엄 사용자 인 경우 3 권의 책을 업로드 할 수 있고 사용자가 금 사용자 인 경우 무제한 도서를 업로드 할 수 있으며 골드 또는 프리미엄이없는 사용자 인 경우에만 업로드 할 수있는 if else 문을 작성합니다 내 컨트롤러의 새로운 작업에 2 권의 책. 감사합니다.레일에 else 문이있는 경우 간단합니다.
1
A
답변
1
1
글쎄, 중첩 된 속성을 사용하여 사용자 양식으로 도서를 업로드하거나 책 양식을 사용하여 직접 도서를 업로드하도록 선택할 수 있습니다. 사용자에게 유효성을 검사 할 수 있습니다. 당신이 책을 통해 제출하더라도
class User
has_many :books
validates :books, :length => { if: Proc.new { |r| r.gold? }, allow_nil: true, maximum: 3, too_long: 'gold users can only upload 3 books' }
validates :books, :length => { if: Proc.new { |r| r.standard? }, allow_nil: true, maximum: 3, too_long: 'gold users can only upload 3 books' }
end
class Book
belongs_to :user
validates :user, :presence => true, associated: true
end
, 검증이 제대로 작동하는 당신이 순서에 user.books.build
와 함께 새로운 책을 만들 수 있는지 확인하십시오.
컨트롤러가 새 것이거나 생성 동작이 동일하므로 유효성 검사를 위해 사용자 유형을 포크 할 필요가 없습니다.
사용자가 최대 허용 업로드에 도달하면 서적/새로운보기에 메모를 쓰거나 양식을 사용 중지하려는 경우 일 수 있습니다.
희망이
관련 문제
- 1. for 루프의 else 문이있는 경우
- 2. FLEX 텍스트 영역에 else 문이있는 경우
- 3. 어떻게 설정합니까? linq에 else 문이있는 경우
- 4. 음수 리턴 문이있는 경우
- 5. 클래스 선언에 직접 문이있는 경우
- 6. PHP MYSQL에 null 문이있는 경우
- 7. mySQL에 IF/ELSE 문이있는 SELECT와 같은 것이 있습니까?
- 8. else 문이 else 부분에 도달하지 않는 경우
- 9. 컨트롤러에 if 문이있는 경우 어디에서 respond_to를 사용합니까?
- 10. if 한 줄에 if 문이있는 경우
- 11. SQL 서버 : "NOT IN"문이있는 경우
- 12. 파이썬 2.7의 경우 else
- 13. GridViewRow가 선택된 경우 ... Else
- 14. 문이있는 파이썬
- 15. iOS 앱에 입력 된 사용자 이름과 비밀번호를 확인하는 문이있는 경우
- 16. asp.net 설치 프로그램은 간단합니다
- 17. 여러 조건이있는 else 문인 경우
- 18. else 문이 중첩 된 경우
- 19. else 문이 작동하지 않는 경우!
- 20. 경우-else 문 구문 환경
- 21. else statement가 혼동하는 경우 C++
- 22. else 문이 실행되지 않는 경우
- 23. NSNumber가 NSString으로 인식되는 경우 else-
- 24. else 루프가 haml 인 경우
- 25. 파이썬 Tkinter에 "c> 255"문이있는 경우 버그
- 26. 간단합니다. 왜 작동하지 않습니까?
- 27. 정규식 일치, 매우 간단합니다 :
- 28. 매우 간단합니다. Zend_Db_Table 질문
- 29. JQuery 자동 완성/레일에 루비가있는 if/else 문 확인
- 30. switch 문이있는 문자 카운터 java
당신은 STI 테이블이있는 지점이 도움 오늘 감사까지 있습니다 ABT 몰랐어요. 그러나 나는 그것을 많이 사용하는 방법을 알고 있으며, 아래에 주어진 예는 내 경우에 부합 할만큼 충분히 순탄하지 않다. – Uchenna
내가 가진 필드는 부울 필드입니다. – Uchenna
방금 cancan을 사용하여 내 논리를 작성하고 u와 같은 뷰를 업데이트했으며 제대로 작동합니다. – Uchenna