Sinatra에 오류 메시지가 표시되지 않는 문제
3224 단어 Ruby
전제 조건
투고 형식의 입력란은 제목과 본문이다.
둘 다 비울 수 없어요.
검증이 끊겼을 때 발언 형식으로 돌아가 오류 정보를 표시합니다.
이것은 실제 완성된 페이지입니다.
간고한 곳
처음엔 "발리데이를 만났으면 잘못된 정보를 배열해서 뷰에 넘기는 게 간단하지 않겠나"라고 생각했어요.
하지만 뷰가 표시되지 않는 이유는 다음과 같습니다.
그래서 Debuga에서 봤는데 어느새 nil로 배열되었어요.
그거 뜨면 안 돼!(웃음) 이렇게 생각하면서 원인을 찾았다.
해결책
최초의 나의 코드는 다음과 같다.post '/posts/create' do
@post = Post.new(title: params[:title], body: params[:body])
if @post.save
redirect '/posts/page/1'
else
@errors = @post.errors.full_messages.uniq!
redirect '/posts/new'
end
end
redirect가 문제야.
Redirect에 걸리면 동작이 다시 호출되기 때문입니다.니가 됐어.
그래서, 나는 Redirect를 할 줄 모르니, 직접 View 파일을 너에게 건네주겠다.post '/posts/create' do
@post = Post.new(title: params[:title], body: params[:body])
if @post.save
redirect '/posts/page/1'
else
@errors = @post.errors.full_messages.uniq!
erb :new_post
end
end
이렇게 하면 안전하게 오류 정보를 표시할 수 있다.
총결산
이번에는sinatra에 잘못된 정보를 표시하는 방법을 총결하였다.
시나트라는 참고할 만한 사이트가 많기 때문에 나 자신도 고전하고 있다.
같은 환경의 사람이 해결할 수 있는 계기가 됐으면 좋겠어요.
Reference
이 문제에 관하여(Sinatra에 오류 메시지가 표시되지 않는 문제), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/keisuke713/items/5cb8ea890c85889161e3
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
처음엔 "발리데이를 만났으면 잘못된 정보를 배열해서 뷰에 넘기는 게 간단하지 않겠나"라고 생각했어요.
하지만 뷰가 표시되지 않는 이유는 다음과 같습니다.
그래서 Debuga에서 봤는데 어느새 nil로 배열되었어요.
그거 뜨면 안 돼!(웃음) 이렇게 생각하면서 원인을 찾았다.
해결책
최초의 나의 코드는 다음과 같다.post '/posts/create' do
@post = Post.new(title: params[:title], body: params[:body])
if @post.save
redirect '/posts/page/1'
else
@errors = @post.errors.full_messages.uniq!
redirect '/posts/new'
end
end
redirect가 문제야.
Redirect에 걸리면 동작이 다시 호출되기 때문입니다.니가 됐어.
그래서, 나는 Redirect를 할 줄 모르니, 직접 View 파일을 너에게 건네주겠다.post '/posts/create' do
@post = Post.new(title: params[:title], body: params[:body])
if @post.save
redirect '/posts/page/1'
else
@errors = @post.errors.full_messages.uniq!
erb :new_post
end
end
이렇게 하면 안전하게 오류 정보를 표시할 수 있다.
총결산
이번에는sinatra에 잘못된 정보를 표시하는 방법을 총결하였다.
시나트라는 참고할 만한 사이트가 많기 때문에 나 자신도 고전하고 있다.
같은 환경의 사람이 해결할 수 있는 계기가 됐으면 좋겠어요.
Reference
이 문제에 관하여(Sinatra에 오류 메시지가 표시되지 않는 문제), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/keisuke713/items/5cb8ea890c85889161e3
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
post '/posts/create' do
@post = Post.new(title: params[:title], body: params[:body])
if @post.save
redirect '/posts/page/1'
else
@errors = @post.errors.full_messages.uniq!
redirect '/posts/new'
end
end
post '/posts/create' do
@post = Post.new(title: params[:title], body: params[:body])
if @post.save
redirect '/posts/page/1'
else
@errors = @post.errors.full_messages.uniq!
erb :new_post
end
end
이번에는sinatra에 잘못된 정보를 표시하는 방법을 총결하였다.
시나트라는 참고할 만한 사이트가 많기 때문에 나 자신도 고전하고 있다.
같은 환경의 사람이 해결할 수 있는 계기가 됐으면 좋겠어요.
Reference
이 문제에 관하여(Sinatra에 오류 메시지가 표시되지 않는 문제), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/keisuke713/items/5cb8ea890c85889161e3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)