[strong parameters][form_with]소식에 사용자 정보 표시
5540 단어 루비Railsstrong_parameters초학자용
개요
목적
프로게이트 이외의 방법(strong parameters)으로 투고 상세에 투고주(사용자) 정보를 기재하는 것.
(덧붙여서 프로 게이트는 이런 느낌 )
실현하고 싶은 것
각 action
하는 것(포인트)
새로운
from_with를 사용하여 게시.
create
strong parameters를 사용하여 처리.
show
게시물에 사용자 정보를 끌어온다.
이러한 흐름으로 진행해 갑니다.
완성 이미지
이미지에는 사용자 이름, 아이콘이 기재되어 있지만,
이번은 알기 쉽게 이해 받기 위해서 유저명만의 표시합니다.
환경
Ruby 2.5.6
Rails 5.2.3
전제
Ruby 2.5.6
Rails 5.2.3
전제
strong parameters란?
한마디로
「웹 화면상에서 내부로 흘러 온 값을 안전하게 받는 구조」입니다.
좀 더 씹어서 간단히 설명하면
입력 폼으로 기술한 정보(이름, 메일 주소등)를 안전하게 백엔드에 건네주는 구조입니다.
이번에는 그 스트롱 파라미터를 사용합니다.
참고 URL
Rails 초학자가 넘어지기 쉬운 「스트롱 파라미터의 구조」
【Rails 입문】params 사용법 정리
new (form_with를 사용하여 게시)
여기의 목적은 from_with를 사용하여 게시 할 수 있도록합니다.
comments/new.html.erb<%= form_with model: @comment, local: true do |form| %>
<%= form.text_area :content,class:"new_text" %>
<% end %>
이렇게 form_with를 사용하여 입력된 정보를 스트롱 매개변수로 수신할 수 있습니다.
controller (strong parameters를 사용하여 처리)
app/controllers/comments_controller.rb def new
@comment = Comment.new
end
def create
@comment = Comment.create params.require(:comment).permit(:content).merge(user_id: current_user.id)
end
def show
@comment = Comment.find(params[:id])
@user = User.find_by(id: @comment.user_id)
end
★해설★
여기서 포인트는 create 액션일 때,
새로 입력한 특정 정보(이번에는 콘텐츠)만
정보는 받지 않습니다~! 라고 하는 설정을 하고 있습니다.
★포인트★
(1) 로그인 한 사용자 ID 읽기
create 액션을 실행했을 때 입력된 content 이외에도 그 때
로그인한 사용자 ID를 받도록 설정되어 있습니다.
current_user는 스트롱 매개 변수에서 적용되지 않으므로,
merge 메소드를 사용하여 받을 수 있습니다.
(2) 로그인 한 사용자 ID 수신
show 액션을 실행할 때,
create 액션에서 읽은 사용자 ID를 연결합니다.
참고 URL
【Ruby on Rails】 스트롱 파라미터란 무엇인가?
show (게시물에 사용자 정보를 당기기)
app/views/comments/show.html.erb<%= @user.name%> #名前を表示
<%=@comment.content%> #投稿内容を表示
이제 게시물에 사용자 정보를 연결할 수있었습니다!
마지막으로
아직 공부가 부족한 곳이 있으므로,
업데이트할 수 있던 지식은 추가로 기재해 갑니다.
만약, 뭔가 수정점이 있으시면 코멘트 등
죄송하지만 잘 부탁드립니다.
Reference
이 문제에 관하여([strong parameters][form_with]소식에 사용자 정보 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/akr03xxx/items/6a3f23a53dd887ab26f7
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
여기의 목적은 from_with를 사용하여 게시 할 수 있도록합니다.
comments/new.html.erb
<%= form_with model: @comment, local: true do |form| %>
<%= form.text_area :content,class:"new_text" %>
<% end %>
이렇게 form_with를 사용하여 입력된 정보를 스트롱 매개변수로 수신할 수 있습니다.
controller (strong parameters를 사용하여 처리)
app/controllers/comments_controller.rb def new
@comment = Comment.new
end
def create
@comment = Comment.create params.require(:comment).permit(:content).merge(user_id: current_user.id)
end
def show
@comment = Comment.find(params[:id])
@user = User.find_by(id: @comment.user_id)
end
★해설★
여기서 포인트는 create 액션일 때,
새로 입력한 특정 정보(이번에는 콘텐츠)만
정보는 받지 않습니다~! 라고 하는 설정을 하고 있습니다.
★포인트★
(1) 로그인 한 사용자 ID 읽기
create 액션을 실행했을 때 입력된 content 이외에도 그 때
로그인한 사용자 ID를 받도록 설정되어 있습니다.
current_user는 스트롱 매개 변수에서 적용되지 않으므로,
merge 메소드를 사용하여 받을 수 있습니다.
(2) 로그인 한 사용자 ID 수신
show 액션을 실행할 때,
create 액션에서 읽은 사용자 ID를 연결합니다.
참고 URL
【Ruby on Rails】 스트롱 파라미터란 무엇인가?
show (게시물에 사용자 정보를 당기기)
app/views/comments/show.html.erb<%= @user.name%> #名前を表示
<%=@comment.content%> #投稿内容を表示
이제 게시물에 사용자 정보를 연결할 수있었습니다!
마지막으로
아직 공부가 부족한 곳이 있으므로,
업데이트할 수 있던 지식은 추가로 기재해 갑니다.
만약, 뭔가 수정점이 있으시면 코멘트 등
죄송하지만 잘 부탁드립니다.
Reference
이 문제에 관하여([strong parameters][form_with]소식에 사용자 정보 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/akr03xxx/items/6a3f23a53dd887ab26f7
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
def new
@comment = Comment.new
end
def create
@comment = Comment.create params.require(:comment).permit(:content).merge(user_id: current_user.id)
end
def show
@comment = Comment.find(params[:id])
@user = User.find_by(id: @comment.user_id)
end
app/views/comments/show.html.erb
<%= @user.name%> #名前を表示
<%=@comment.content%> #投稿内容を表示
이제 게시물에 사용자 정보를 연결할 수있었습니다!
마지막으로
아직 공부가 부족한 곳이 있으므로,
업데이트할 수 있던 지식은 추가로 기재해 갑니다.
만약, 뭔가 수정점이 있으시면 코멘트 등
죄송하지만 잘 부탁드립니다.
Reference
이 문제에 관하여([strong parameters][form_with]소식에 사용자 정보 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/akr03xxx/items/6a3f23a53dd887ab26f7
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여([strong parameters][form_with]소식에 사용자 정보 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/akr03xxx/items/6a3f23a53dd887ab26f7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)