render 메서드 정보

6301 단어 RubyRails
처음 뵙겠습니다. 저는 구보웅귀라고 합니다.
이번에는 렌더링 방법에 대해 제가 알고 있는 것을 쓰고 싶습니다.
잘못된 점이나 "이렇게 쓰는 게 좋을 것 같아요"라고 조언하는 부분이 있다면 댓글로 남겨주세요.

render 메서드 정보


1. 렌더링이란?


렌더 방법을 기술하기 전에, 이 단어를 과장하는 것을 설명하세요.
렌더링은 브라우저를 통해 뷰 파일에서 최종적으로 HTML로 컴파일된 파일을 읽고 표시하는 일련의 프로세스입니다.
보기 파일에 코드가 있지만 문자열만 배열되어 있고 직접 표시해도 문자만 표시됩니다.
그러나 각 브라우저는 그 코드를 읽고 그 코드에 따라 디스플레이 화면을 만들어 표시한다.
여기서 중요한 것은 Ruby on Rails에서 컨트롤러가 동작을 시작한 후 일련의 동작을 하면 컨트롤러와 같은 이름의 시야 파일이 자동으로 재현된다는 것이다.
여기에 지시문을 쓸 필요가 없다.
create 작업 시작

실행 방법 내의 명령(자체 기술)

create.html.렌더링 erb(자동으로 정의)

2. 렌더링 방법은?


render 방법은 재현할 원시 보기 파일을 직접 지정할 수 있는 방법입니다.
그렇다면 복습할 때 Lesson7의 업무에서'render'라는 방법을 사용했다.
뭐 했는지 말해야지.
① 다른 파일(index.].erb와 show.erb)에 적힌 똑같은 코드를 캡처합니다.
② 새로 만든 파일에 붙여넣는다.
③ 사용하고자 하는 파일에서render 방법을 사용하여 호출합니다.
그렇습니다.(일부 템플릿 설치)
render 방법을 사용하면 지정한 다른 보기 파일을 읽고 실행할 수 있습니다.
같은 코드는 다른 보기 파일 (index.].erb와 show.erb가 다르다) 에서도 사용할 수 있다는 장점이 있다.
그때 쓰는 방법은요.
<%render partial:“post”,locals:{post}.
partial: → 일부 템플릿의 파일 이름 지정하기
localls: → 일부 템플릿 파일에 사용할 변수 정의 (왼쪽post)
그러나render 방법은 옵션을 사용하는 것입니다. 이외에 다른 용도도 있습니다.
그중의 하나는 바로
render action:작업 이름
네.
예를 들어 첫 페이지에 가려는 경우
render action: :index
.
언제 쓰는지 알려드릴게요.
위에서 말한 바와 같이, Rails는 기본적으로 컨트롤러와 같은 이름의 보기 파일을 보여 주지만, 그렇지 않으면 여기에 지정한 다른 보기 파일로 설정해서 렌더링하려고 합니다.
예를 들어 투고 형식 (new.].erb) 의 페이지에 '제목' 과 '내용' 을 쓰고 투고 단추를 누르면 '투고 완료' 이다.투고 완료 페이지(create.].erb)를 표시합니다.
그게 아니라 첫 페이지를 표시하고 싶을 때 사용하세요.
어디에 기술해야 하는지 컨트롤러 내create 동작이 정의된 곳입니다.

이렇게 기술하면create 동작에서 데이터베이스에 투고 내용을 저장하면 첫 페이지가 표시됩니다.

3. 의문


그렇다면 누군가는 매력적이라고 생각할지 모르지만, 우리는 자동으로 과장하지 않고 첫 페이지를 보여주는 방법을 배웠다.
redirect_to 방법이야.
redirect_to '/' (もしくは root_path)
이렇게 쓰면 첫 페이지가 표시됩니다.
의문입니다.
redirect_to    メソッド
render action: メソッド
사용하면 각자 어떤 동작과 결과가 나올까.

4. 실험


이번에 우리는 다음의create 동작에서 쌍방을 기술하고 동작을 관찰할 것이다.
def create
    Post.create(post_params)
    redirect_to root_path
end
def create
    Post.create(post_params)
    render action: :index
end
  • redirect_to 방법 시

  • 1.postscontroller의create 동작에 기술하기

    2.투고 내용

    3.순조롭게 첫 페이지로 이동했다.
  • render action: 방법의 경우

  • 1. postscontroller의create 동작에 기술하기

    2.투고 내용

    3. 오류가 발생했습니다.
    내용은 다음과 같습니다.
    each 방법을 시작하면 실례 변수@post의 내용은nil이므로 사용할 수 없습니다.
    그러니까
    여기 있어요, index.html.eb 좀 봐요.

    확실히 each 방법을 사용하여 @post의 내용을 표시합니다.
    그럼 이거@post의 정의는 어디에 있을까요?
    def index
     @post = Post.all
    end
    
    여기 있습니다.
    postscontroller의 index 동작에서

    5.  4.실험에서 깨달은 것

  • redirect_방법
    루트에 요청을 보내기 위해posts 컨트롤러의 index 동작을 시작하여 데이터베이스 내용을 @post에 복사합니다.그 다음, index.html.렌더링erb.
    결과가 첫 페이지를 표시합니다.
  • render action: :index
    경로를 거치지 않고 index로 바로 갑니다.html.eb를 지정하여 렌더링하기 위해서 index입니다.html.erb내@post의 내용은 비어 있습니다.(create 동작이 없고 @post에 전달되는 실례 변수입니다.)
    결과가 오류로 표시됩니다.
  • 6. 결론


    render action: 첫 페이지를 표시할 수 있지만, 첫 페이지의 내용이 적힌 보기 파일 (index.].erb) 에 실례 변수가 있다면, 실례 변수에 뭔가를 하지 않으면 오류가 발생합니다.
    특별한 상황이 없으면to가 좋아요?내 생각엔
    특별한 수혜 장면이 있다면 알려주면 이득이 될 거예요.
    P.S.
    겸사겸사 말씀드리지만, 이렇게 하면 첫 페이지를 표시할 수 있습니다.

    쓸데없는 기술이네.
    그래서 첫 투고는 여기까지다.
    감사합니다.
    {0} 참조
    https://pikawaka.com/rails/render#렌더링이란

    좋은 웹페이지 즐겨찾기