rails 학습 7일째 그 3
6645 단어 Rails 튜토리얼
Rails 튜토리얼 7장
7.1.1 디버깅 및 Rails 환경
debug(params) 기능을 사용하면 컨트롤러의 액션이나 그 외의 정보를 표시해 주어 편리하게 된다.
cscc의 믹스 인 기능
@mixin box_sizing{
-moz-box-sizing:border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
.debug_bump{
clear:both;
@include box-sizing
}
@mixin 에서 여러 기능을 결합하여 변수처럼 취급할 수 있다. 호출할 때는 @include 로 호출하는 것으로 기능을 사용할 수 있다
7.1.4 Gravatar 이미지와 사이드바
Gravatar는 무료 서비스로 프로필 사진을 업로드하여 지정한 이메일 주소와 연결할 수 있습니다. 코드로 사용할 때는 gravatar_for라는 도우미 메서드를 사용하여 이미지를 주소와 연결할 수 있습니다.
①gravatar_for 도우미 방법 만들기
image_tag라는 도우미 메서드 사용
image_tag(gravatar의 URL,alt:〇〇,class:"gravatar")
이것으로 헬퍼 메소드의 정의가 끝났으므로 다음에 실제로 사용해 간다
② 뷰에 Gravatar 이미지와 이름을 올린다
사용하고 싶은 뷰에
<%= gravatar_for @user %>
<%= @user.name %>
붙여넣기( @user 를 정의해야 함)
@user 가 등록한 메어드에 붙어 있는 이미지가 gravatar에 있으면 그것을 표시시킨다.
7.2.1 form_for 사용
strong Parameters
def create
@user = User.new(params[:user])
end
params[:user]만으로는 악의 있는 사용자가 다른 정보를 보낼 수도 있는 위험이 있다. 그래서 이쪽이 허가한 값만을 허가하기 위한 코드가 필요하게 된다.
def user_params
params.require(:user).permit(:name, :email, :password, :password_confirmation)
end
이 코드를 쓰면 지정된 값만 허가하여 통과하게 된다. 이 결과 코드는 다음과 같습니다.
def create
@user = User.new(user_params)
end
private
def user_params
params.require(:user).permit(:name, :email, :password, :password_confirmation)
end
private 아래의 코드는 외부로부터의 조작을 받지 않기 때문에 안전하다
7.3.3 오류 메시지
유저 등록은 가능하게 되었지만 만약 등록에 실패해도 현재는 「실패했습니다」등의 메세지가 아무것도 표시되지 않기 때문에 보존이 성공했는지 실패했는지 유저측은 판단을 할 수 없는 상태가 되어 있다.
그래서
저장되지 않은 경우 오류를 표시하는 코드 작성
구조로서는 에러를 표시하기 위한 코드 등을 _error_message 파일에 써 두고, 그것을 render를 사용해 new.html까지 가져오고 있다.
7.4 사용자 등록 성공
사용자의 등록 실패시에 에러를 낼 수 있도록 했지만, 다음은 등록이 성공했을 때 성공의 메시지가 나오도록 한다.
if @user.save
flash[:success]="Welcome to the Sample App!"
redirect_to @User
"만약 사용자가 저장에 성공하면 "Welcome to the Sample App!"라는 플래시 메시지를 낸다"는 코드가 걸렸다.
그러나 우선 flash를 정의하고 있지 않기 때문에 flash를 호출하는 것도 아무것도 없다.
그래서 flash를 정의한다.
<% flash.each do |message_type,message| %>
<div class="alert alert-<%= message_type %>"><%= message %></div%>
<% end %>
이제 flash를 정의할 수 있었다.
Reference
이 문제에 관하여(rails 학습 7일째 그 3), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/namikawa07/items/9763ba938cebdefd284c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
@mixin box_sizing{
-moz-box-sizing:border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
.debug_bump{
clear:both;
@include box-sizing
}
<%= gravatar_for @user %>
<%= @user.name %>
def create
@user = User.new(params[:user])
end
def user_params
params.require(:user).permit(:name, :email, :password, :password_confirmation)
end
def create
@user = User.new(user_params)
end
private
def user_params
params.require(:user).permit(:name, :email, :password, :password_confirmation)
end
if @user.save
flash[:success]="Welcome to the Sample App!"
redirect_to @User
<% flash.each do |message_type,message| %>
<div class="alert alert-<%= message_type %>"><%= message %></div%>
<% end %>
Reference
이 문제에 관하여(rails 학습 7일째 그 3), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/namikawa07/items/9763ba938cebdefd284c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)