로 인수를 사용하여 내보기입니다 그래서 데이터베이스를 검사하여 사용자가 이전에 자신의 나이를 표시하도록 선택했는지 확인하고, 그렇다면 확인란이 선택됩니다. 그렇지 않으면 그렇지 않습니다. 현재는 false를 전달하지만, 도우미에서 "@ user.preferences.age_visible"을 작성하면 true를 전달합니다. 그러나 물론 다른 속성에 도우미를 사용할 수 있기를 원합니다.레일 모델 속성 여기
1
A
답변
0
Davidb의 대답은 정확하지만 나중에 동적으로 메소드를 호출하려는 경우 send
을 사용할 수 있습니다. 예 : 같은 :
@user.preferences.send(:age_visible)
그냥 약간의 팁 도우미가 더 간결하게 만들려면 :
def checked?(pref)
@user.preferences.send(pref) == "1"
end
1
당신을 :이처럼 도우미를 다시 작성할 수 있도록
@user.preferences.send(pref) == "1"
이미 부울을 반환 추가 헬퍼가 필요 없다. 데이터베이스에 부울 필드를 만들 때 ActiveRecords는 true 또는 true로 설정되었는지 여부를 쿼리하는 메서드를 제공합니다. 이것을보십시오 :
<%= check_box_tag :age_visible, 1, @user.age_visible? %>
+0
토글하려는 각 속성에 대해 별도의 열을 만들어야하므로 부울 필드를 사용하지 않습니다. 대신 정보가있는 각 사용자의 환경 설정 열이 있습니다. 테스트 한 결과, @ user.preferences.age_visible == "1"이 뷰에서 작동하지만 도우미는 더 깨끗해 보입니다. – Lee
관련 문제
- 1. 가상 속성 레일 모델
- 2. 레일 : 여기
- 3. 레일 모델 : "이 많은"* 간단한 * 속성
- 4. 레일 : 생성 중 모델 속성 채우기
- 5. 레일 3, 모델 방법/계산 된 속성
- 6. 레일 모델 속성 유형이 제거되지 않습니다
- 7. 레일 - 모델에없는 속성 추가 및 모델 속성 업데이트
- 8. 복잡한 레일 협회는 여기 우려의 세 가지 모델
- 9. 레일 여기 부분
- 10. 레일 - POST 메소드 여기
- 11. 내가 레일 여기 2.3.11
- 12. 매핑 불변의 속성 여기
- 13. 탈출 속성 값이/여기
- 14. 저장 레일 모델
- 15. 레일 3 폼과 모델
- 16. 레일 : 모델
- 17. 레일 모델
- 18. 레일 :. 모델 (
- 19. 레일 모델 연결 설정
- 20. 레일 모델의 가상 속성
- 21. 레일 속성
- 22. 레일 중첩 모델
- 23. 다른 모델 유형이있는 레일 모델
- 24. 오버라이드 모델 속성
- 25. 레일 개수 속성 개수
- 26. 멀티 스레딩과 일관성 모델 여기
- 27. 모델 피팅 기능과 environemnts 여기
- 28. MVC3 선택 모델 속성
- 29. YARD를 사용한 문서 모델 속성
- 30. 레일 이전 버전 호환성 여기
중대한! 빠른 답변 주셔서 감사합니다. 정확히 내가 무엇을 찾고 있었는지. – Lee
@ 실은 사실 Davidb의 답변이 더 좋다고 생각합니다. – Mischa
아래의 답장을 참조하십시오. 각 속성에 별도의 열을 사용하지 않고 OpenStruct를 사용하는 환경 설정 열을 사용합니다. – Lee