내 앱에서 사용자는 제품 리뷰를 작성할 수 있습니다. 그러나 검토를 게시하기 전에 관리자는 검토를 수락하거나 거부해야합니다 (사용자가 검토를 변경할 수 있음).레일 : 댓글 확인 경로 만들기 (수락 또는 거부)
유효성 검사 부분을 관리하기 위해 메서드를 Reviews
컨트롤러 안에 만들었습니다. 관리자는 새로운 리뷰 근처에 두 개의 버튼 (링크)을 가지고 있습니다 : Accep, Reject. 해당 버튼은 validate#reviews
으로 리디렉션되고 적절한 매개 변수 인 review_id
및 admin_action
(허용 또는 거부)을 보냅니다.
어떻게하면 단추 (링크)의 경로를 만들 수 있습니까?
link_to "accept", polymorphic_path([review, :validate => 'accep'])
과 같은 많은 조합을 시도했지만 성공하지 못했습니다. URL이 어떻게 보이는지 파악하는 데 어려움이 있습니다! 물론, 이전에 routes.rb에 get 'reviews/validate'
을 추가했습니다.
비슷한 상황에 처했을 때 어떻게 했습니까? 모범 사례가 있습니까?
업데이트
또한 link_to "Accept", polymorphic_path(:reviews => review, :validate => 'accept')
을 시도했지만 제공 무기 호 위치를 얻는다. URI를 만들 수 없습니다.
업데이트 2
내가 관리자 인증을 확인, 검토를 받고 같은 일반적인 데이터 처리가 있기 때문에 (대신 두 가지 방법 accept
및 reject
을 만드는)을 validate
방법을 사용하고 싶습니다 ...
그래서, 내 컨트롤러, 내가 좋아하는 뭔가를 찾고 있어요 : 사전에
def activate
# Get review, using review_id
# Check in the admin has the right to validate the review
# Execute the correct action: accept or reject.
end
private
def accept
...
end
def reject
...
end
감사합니다.
뛰어난 Erez와 감사합니다. 내가 찾던 솔루션입니다. 'accept'와'reject' 메쏘드는 private이어야하기 때문에 한 걸음 더 나아가 야합니다. 내 유일한 진입 점은 테스트를 수행하는 (인증 확인과 같은) teh'validate '메소드이며, 올바른 액션을 실행합니다. 제발, 두 번째 업데이 트를 볼 수 있습니다. – htaidirt
필자는 마침내'link_to "Accept", validate_review_path (리뷰, : type => "accept")'를 링크로 사용하고 컨트롤러에서는'if params [: type] = = '수락'... '. 고마워, Erez. – htaidirt