2011-05-02 8 views
0

로그인하지 않은 사용자는 모델의 특정 작업을 볼 수 있습니다.고급 수준에서 로그인하지 않은 사용자가 내 앱에서 특정 작업을 수행하도록 허용하는 방법 - Rails 3

예. http://compversions.com/stages/40/compare?ck=o3NJC18Kj0LPe-vOpBfw&sk=rZFmkaDkN2U7cCx_69OT

그러나 댓글을 추가하거나 이미지를 위아래로 투표하려고하면 그렇게 할 수 없습니다.

어떻게 접근합니까?

나는 단지 before_filter :except => :create을 내 Comments 컨트롤러에 추가하는 것이지만 그 유일한 방법일까요? 개미를 죽이기 위해 쇠 망치를 사용하는 것 같습니다. 그러면 로그인하지 않은 사용자는 내 앱 전체에 댓글을 남기고 다른 댓글에 액세스 할 수 있습니다.

이 모델 (stage)과 동작 (compare)으로 어떻게 제한합니까?

감사합니다.

P. 나는 인증과 권한 부여를 위해 각각 & decl_auth를 사용하고있다.

+0

로그인하지 않은 사용자에 대해 이러한 UI 요소가 표시되지 않도록 하시겠습니까? 아니면 로그인하지 않아도되지만 (예 : 로그인하라는 메시지가 표시되는지 등) – thefugal

+0

아니요 ... 기본적으로 시스템 작동 방식은 디자이너가 해당 링크에서 볼 수있는 이미지를 업로드하는 것입니다. 그런 다음 그들은 그것을 고객에게 보냅니다. 기본적으로이 공용 링크를 생성하고이를 한 단계로 클라이언트에 전자 메일로 보냅니다. 내가 원하는 것은 해당 클라이언트 (즉 해당 URL을 가진 사람)가 해당 이미지에서 위 또는 아래로 투표를하고 주석을 남길 수있게하는 것입니다 (우리는 클라이언트가 comment, 그래서 나는'client.f_name'에 주석의 이름/저자를 설정하는 것과 같은 것을 할 것입니다.) 희망은 그 말이 맞습니다. – marcamillion

+0

[cancan] (https://github.com/ryanb/cancan) – Zabba

답변

0

디자이너 업로드 및 이미지가있는 경우 해당 이미지를 저장할 때 토큰을 생성하고 이미지에 연결할 수 있습니다. 그런 다음 이메일을 보내면 토큰을 이메일의 URL에 쿼리 매개 변수로 추가하십시오. 클라이언트가 링크를 클릭하면 토큰 매개 변수를 캡처하고 해당 토큰이 일치하는 경우에만 주석을 허용 할 수 있습니다.

+0

하지만 다른 모델의 맥락에서 어떻게해야합니까? 예 : 'comments' 모델은 클라이언트가 액세스 할 수있는'stages' 모델과 다릅니다. – marcamillion

관련 문제