render 메서드 정보
이번에는 렌더링 방법에 대해 제가 알고 있는 것을 쓰고 싶습니다.
잘못된 점이나 "이렇게 쓰는 게 좋을 것 같아요"라고 조언하는 부분이 있다면 댓글로 남겨주세요.
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
render action: :index
redirect_to '/' (もしくは root_path)
redirect_to メソッド
render action: メソッド
def create
Post.create(post_params)
redirect_to root_path
end
def create
Post.create(post_params)
render action: :index
end
1.postscontroller의create 동작에 기술하기
2.투고 내용
3.순조롭게 첫 페이지로 이동했다.
1. postscontroller의create 동작에 기술하기
2.투고 내용
3. 오류가 발생했습니다.
내용은 다음과 같습니다.
each 방법을 시작하면 실례 변수@post의 내용은nil이므로 사용할 수 없습니다.
그러니까
여기 있어요, index.html.eb 좀 봐요.
확실히 each 방법을 사용하여 @post의 내용을 표시합니다.
그럼 이거@post의 정의는 어디에 있을까요?
def index
@post = Post.all
end
여기 있습니다.postscontroller의 index 동작에서
5. 4.실험에서 깨달은 것
루트에 요청을 보내기 위해posts 컨트롤러의 index 동작을 시작하여 데이터베이스 내용을 @post에 복사합니다.그 다음, index.html.렌더링erb.
결과가 첫 페이지를 표시합니다.
경로를 거치지 않고 index로 바로 갑니다.html.eb를 지정하여 렌더링하기 위해서 index입니다.html.erb내@post의 내용은 비어 있습니다.(create 동작이 없고 @post에 전달되는 실례 변수입니다.)
결과가 오류로 표시됩니다.
6. 결론
render action: 첫 페이지를 표시할 수 있지만, 첫 페이지의 내용이 적힌 보기 파일 (index.].erb) 에 실례 변수가 있다면, 실례 변수에 뭔가를 하지 않으면 오류가 발생합니다.
특별한 상황이 없으면to가 좋아요?내 생각엔
특별한 수혜 장면이 있다면 알려주면 이득이 될 거예요.
P.S.
겸사겸사 말씀드리지만, 이렇게 하면 첫 페이지를 표시할 수 있습니다.
쓸데없는 기술이네.
그래서 첫 투고는 여기까지다.
감사합니다.
{0} 참조
https://pikawaka.com/rails/render#렌더링이란
Reference
이 문제에 관하여(render 메서드 정보), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/DON4024/items/3626243eb24a4df1ba77텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)