2012-03-22 3 views
0

내 DB의 기존 레코드를 업데이트하는 데 문제가 있습니다.레일 3 ActiveRecord 업데이트가 작동하지 않습니다.

제 생각에는 확인란이 있습니다. 사용자가 클릭하면 Ajax 호출이 트리거됩니다.

t = Materialtitle.find(@doc_code) 
t.pub_template = params[:checked] 
t.save! 

문제 : 나는 체크 박스 다에 처음으로 클릭이 업데이트됩니다 내 컨트롤러 A의
같은 코드가 있습니다. 하지만 두 번 클릭하면 업데이트되지 않습니다. 도움을

←[1m←[35mMaterialtitle Load (0.0ms)←[0m SELECT TOP (1) [materialtitles].* FRO 
[materialtitles] WHERE [materialtitles].[id] = 181 
←[1m←[36mEXECUTE (0.0ms)←[0m ←[1mBEGIN TRANSACTION←[0m 
←[1m←[35mEXECUTE (0.0ms)←[0m COMMIT TRANSACTION 

감사 :는 그리고 로그에 나는 빈 거래를해야합니다.

+0

두 번째로 'params'에 무엇이 있습니까? –

+0

첫 번째 url - ** http : //127.0.0.1 : 3000/admin/templates/74/publicate? locale = uk & checked = 1 **, 두 번째 시간 - ** http : //127.0.0.1 : 3000/admin/templates/74/publicate? locale = uk & checked = 0 ** –

답변

0

모델의 속성 상태를 true에서 false로 변경해야하는 상황에서 사용자가 실행할 수있는 체크 박스가 표시된 ajax 호출을 사용하는 viceversa는 가장 쉬운 방법은 토글 ! 귀하의 경우에는

, 컨트롤러의 코드에서 다음 두 줄 대체 : 다음 하나

t.pub_template = params[:checked] 
t.save! 

, 그리고 그것은 단지 작동합니다 다음을로드 할 때

t.toggle!(:pub_template) 

그냥 확인 모델의 속성의 실제 상태를 보여 주므로 사용자가 혼동하지 않도록하십시오.

당신이 유용하다고 생각합니다.

+0

최고! 그것은 작동합니다. 도와 줘서 고마워. –

관련 문제