레일스 3 앱에서 사용자 프로필 has_many :todos
을 사용하고 있습니다. 사용자는 :todos
이라는 세 가지 카테고리가 있습니다. 두 개의 카테고리는 다른 페이지의 버튼을 클릭하면 추가되며, 상태 업데이트와 유사한 양식을 통해 추가 할 수 있습니다.해시 또는 배열 사용 여부에 대한 의견, 레일에서 새 요소 밀어 내기
- , 배열이나 해시를 사용하는 것이 특히 여부 :
그래서 난에 대한 당신의 생각에 관심이 있어요.
:todos
을 모두 계산하고 개별 카테고리의 문자열 값을 나열하고 싶습니다. - 상태 업데이트가 아닌 두 가지 범주로 푸시하는 가장 좋은 방법입니다. 푸시 버튼을 클릭 할 가능성이 가장 큽니다. 따라서 푸시가 클릭이나 기타 클릭으로 이어질 수 있습니다. UPDATE
: 그냥 확인 ...
프로파일 모델 :
has_many :todo, :through => :profiles_todos
has_many :profiles_todos
ProfilesTodos 모델 :
belongs_to :profile
belongs_to :todo
그리고 profiles_todos
마이그레이션 :
(in self.up)
t.string :category
t.integer :profile_id
t.integer :todo_id
(나는 프로그래밍/레일스에 익숙하지 않습니다.)하지만 새로운 객체를 만들고 범주를 추가하는 방법은 어떨까요? 나는 : 할일 (일반)과 : to-dos_groceries가 있다고 가정 해보십시오. 그냥 컨트롤러에 정의하고 @ users_to-dos_groceries로 만드시겠습니까? – tvalent2
두 가지 모델을 갖고 싶지는 않습니다. 조인 테이블 모델을 사용하여 범주를 설정하십시오. 예를 들어,'add_grocery_item (item)'이라는 사용자에 대한 메소드가 있다고 가정하면 다음과 같이됩니다 :'self.users_to-dos.build : category => '식료품 점', : to-do_id => item.id' 데이터베이스에서 해당 사용자를 다시로드하면 새 할 일 항목이 생깁니다. 모든 식료품 점을 얻으려면 '@ user.users_to-dos.select {| users_to_do | users_to_do.category == '식료품 점'}. 각각은 | users_to_do | to_do = users_to_do.to-do # 코드 및 조작은 여기 끝 ' –
죄송합니다. 의견에 이상하게 보입니다. 또한 여기서 확신 할 수는 없지만 변수 이름에 하이픈을 사용할 수는 없습니다. 그것이 당신을 위해 작동한다면, 괜찮아요.하지만 일을 지명하는 가장 좋은 연습 루비/레일 방법은 밑줄 (_) –