2016-10-14 2 views
0

사용자가 중재를 위해 의견을 "표시"할 수 있도록 최선을 다하고 있습니다. 나는 사용자가 "깃발"을 때릴 때마다 증가하는 코멘트에 정수 열을 사용한다. 즉, 중재자는 가장 먼저 플래그가있는 코멘트를 볼 것이다. 나는 이전 모델들 중 하나를 사용하여이 모델을 만들었고, 내 의견 모델과 같은 방식으로 진행할 것이지만 아무것도하지 않고 오류를 던지거나 아무것도하지 않을 것이다.정수 열이 Rails에서 증가하지 않습니다.

Reviews_controller.rb

def flag 
     @review = Review.find(params[:id]) 
     @review.increment!(:flag) 

    end 

show.html.erb 플래그 유용한 upvote에 대해 열을 추가

<%= link_to 'Flag', flag_review_path(review), method: :post, :remote => true %> 

이전 (이후에 구현 될)

class AddColumnsToReviews < ActiveRecord::Migration 
    def change 
    add_column :reviews, :flag, :integer, default: 0 
    add_column :reviews, :useful, :integer, default: 0 
    end 
end 
0 국기에 대한

** 경로는 **이에

resources :reviews do 
    member do 
     post 'flag', :review 
    end 
    end 

어떤 도움을 크게 감상 할 수있다. 또한, 비록 이것이 적절한 지 알 수는 없지만 마이 그 레이션 상태에서이 필드의 기본값은 0이어야합니다. 이는 데이터베이스에서 NULL로 표시됩니다.

+1

서버 로그가 데이터베이스에 커밋 또는 롤백을 표시합니까? 'params [: id]'가 있고'@ review'가 유효하다는 것을 확인하기 위해 컨트롤러에 중단 점을 넣었습니까? –

+0

마이그레이션에서 null : false를 지정하십시오. 만약 당신이 라우팅 문제를 일으키지 않는다면, 당신은 콘솔에서 SQL 추적을 볼 수 있습니까? – David

+0

다음을 제거하면 어떻게됩니까? remote => true? – Gaston

답변

1

당신의 제안에 대해 John, Henners66 및 Gaston에게 감사드립니다. 나는 서버 로그를 통해 문제를 파악했다. 꽤 복잡하고, 내가 잘못 생각할 가능성이있다. (그렇다면 자유롭게 조언을해라.)

리뷰는 "교수"페이지에 표시되며 교수가 교수와 연결되어있어 학생들이 교수의 리뷰를 제공 할 수 있습니다. 리뷰 컨트롤러에는 플래그가 작동하지 않는 before_action :set_professor이있었습니다. 그래서 before_action :set_professor, :except => [:flag]을 추가하여 작동시킬 수있었습니다.

귀하의 답변과 제안에 다시 한 번 감사드립니다. 귀하의 충고로 인해 서버 로그에서 주위를 파헤치는 영감을 받았습니다.

+1

당신은 환영합니다 ... 다행히 당신은 그것의 바닥에 있고 업데이트를 위해 감사합니다 :). before_action의 예외는 나에게 완벽하게 유효합니다. – David

관련 문제