2011-03-09 3 views
0

나는 이것에 실제 답을 찾기 위해 영원히 찾고 있었어요? false에서 true로 또는 false에서 true로 또는 그 반대로 속성을 넘기는 것만 큼 간단합니다.업데이트 속성 (레일 3)

stackoverflow에는 이것에 대해 하나 또는 두 개의 스레드가 있지만 observe_field를 사용하거나 (프로토 타입 함수로 처리하는 것이 좋음) 전혀 문제를 해결하지 못했습니다.

다시 레일즈 3 및 프로토 타입입니다.

+0

'observe_field'는 Prototype 함수를 생성하는 루비 헬퍼입니다 ... 왜 그것을 사용하고 싶지 않습니까? –

+0

@Sean 그것은 observ_field가 http://apidock.com/rails/ActionView/Helpers/PrototypeHelper/observe_field에 따라 가치가 하락한 것으로 보입니다. – Dty

+0

@Dty : 아, 그러면 사용하지 않는 것이 좋은 이유입니다. :-) –

답변

1

내가 체크 아웃하는 부분이 당신을 감추고있는 것 같아요?

당신이 정말로 할 필요가 해당 필드를

# somewhere in your model 
my_boolean_field.toggle 

를 전환 한 후 아약스 요청을 할 당신의 체크 박스에 .click() 처리기를 바인딩 모델의 방법을 가지고있다. 필요한 경우, .click() 핸들러 콜백에서 확인란을 업데이트 할 수 있지만 필요한 경우 확실하지 않습니다.

여기 까다로운 부분은 사용자가 확인란을 여러 번 빠르게 클릭하면 어떻게되는지입니다. 한 가지 옵션은 콜백이 완료 될 때까지 클릭 한 후 확인란을 비활성화하는 것입니다.

+0

Rails가 데이터를 형식화하고 컨트롤러를 사용할 것으로 기대하는 방식이었습니다. 어떻게 든 Update 컨트롤러로 보내야한다고 생각했지만 어쩌면이 컨트롤러의 특정 컨트롤러를 구축하는 것이 가장 좋습니다. – clem

+0

업데이트는 귀하의 컨트롤러에 ** 조치 **입니다. 대개 모델에 해당하는 컨트롤러가 있습니다. 예를 들어, "book"이라는 모델이 있다면 "BooksController"가있을 수 있습니다. 그리고 "BooksController"에는 "show, update, create"등과 같은 액션이 있습니다. 그리고 네, 새로운 ** 액션 **을 만들어야 자신의 속성을 토글 할 수 있습니다. – Dty

+0

죄송합니다 - 그게 내가 의미하는 : TasksController의 업데이트 작업 – clem