Rails로 직접 전화하는 방법 금지(URL 입력 없이 다른 편집 화면으로 이동)

직접사격 금지가 뭐예요?


프로그래밍은 7개월이 걸렸는데 아직 좌우를 모른다.
과제 처리 과정에서 "기고자만 편집하거나 삭제할 수 있도록 설정해달라"고 당부했다.이런 조건이 있다.
이거 바로 치는 거 금지래요.https:///XXX/edit이렇게 하면 다른 사람의 투고를 편집할 수 있으니 직접 전화해라?).

그렇구나...그러다 보니 시간이 지나 제작진의 시기가 되면서 완성되면 바로 칠 수 있다는 점을 명확히 했다.
실수로 잊어버렸기 때문에 메모로 직접 전화하는 것을 금지하는 방법입니다.
로그인하지 않은 상태라면'기고인만 있다'고 판단할 수 없어 로그인 기능이 없는 앱이나 홈페이지는 어떻게 해야 할까.그건 앞으로 조사하고 공부할 거예요.
(참고로 이렇게 하면 바로 예약 사이트로 날아갈 수 있기 때문에 어떤 회사는 곤란합니다.)
한 마디로 하면 직접 치는 것은 매우 간단하지만 조심하지 않으면 잊어버린다. 이것은 쉽게 잊어버리지 않는 기능이다!

직접 입력 금지 코드


우선 애플리케이션controller 중 가장 좋다action me 아교를 첨가합니다.
application_controller.rb
class ApplicationController < ActionController::Base
before_action :configure_permitted_parameters, if: :devise_controller?
그리고 직접 금지하고 싶은 컨트롤러 페이지를 엽니다.
(예를 들어, Post라는 이름의 기고문 페이지라면, Post controller.rb)
post_controller.rb
class PostsController < ApplicationController
    before_action :authenticate_user!
    before_action :correct_post,only: [:edit,:XXX]
겸사겸사action :authenticate_user!로그인한 사용자만 사용 가능!라는 뜻이다.
before_action :correct_post, only: [:edit,:XX] 추가
: XX는 직접 치고 싶지 않은 동작도 추가했다.
동시에controller.rb(privte 이상)에 다음 코드를 추가합니다.
post_controller.rb
def correct_post
        @post = Post.find(params[:id])
    unless @post.user.id == current_user.id
      redirect_to posts_path
    end
end
redirect_to posts_path는 투고자 이외의 사람이 직접 전화를 한 경우 날아갈 링크 주소를 기입해 주십시오.
이상, 직접 금지할 수 있습니다!
겸사겸사포스터랑 비슷해서 current포스터라는 게 있어요.
덕분에 내 머릿속은 엉망진창이야. 직접 전화하지 말라는 코드가 적혀 있는데 왜 금지되지 않는 거야!몇 시간 동안 안았다.
이것도 주의해야 할 부분이다.

좋은 웹페이지 즐겨찾기