rails 발언 기능 추가 방법 ※ 자신의 기록에 사용
6155 단어 Rails
자동으로 생성된 열 확인
◇id 표시줄 정보
데이터베이스에 저장할 때, 숫자는 자동으로 id란에 들어갑니다.
id는 1부터 순서대로 들어갑니다. 데이터가 중복되지 않습니다.
◎created_at열과 업데이트at 막대 정보
created_at열과 업데이트at 열에서
데이터베이스에 저장된 시간은 자동으로 들어갈 수 있습니다.
updated_at는 데이터를 업데이트할 때도 시간을 업데이트합니다.
find_by 방법으로 발언 얻기
특정 id의 투고를 얻기 위해findby 방법을 사용하다.
find_by 방법은 어떤 조건에 부합되는 데이터를 얻을 수 있다.
그림에서 보듯이'모델 이름.find by(열 이름: 값)'를 설정하면 데이터베이스에서 이 값을 가진 데이터를 얻을 수 있다.
이번엔↓↓
post = Post.find_by(id:3)
발언 세부 페이지 만들기
관련 부문의 문제를 생각할 필요가 있다.
발언 상세 페이지의 URL에 표시할 투고의 id를 추가해야 합니다.
그리고 그 id가 있는 투고 데이터를 표시합니다.
① 발언 상세 페이지의 경로
• 쇼 동작을 하다
/URL에 id 포함
→ 라우팅의 URL 섹션에서 ":"을 "posts/:id"로 지정
'posts/1'과'posts/2'에서도 show 동작을 합니다.
② URL에서 id 가져오기
변수 params
Controller에 있습니다.↓↓↓
@id = params[:id]
③ 발언 상세페이지 완성
Controller 탭
show 동작에서 변수 @post 를 정의하고 id열의 값은
데이터베이스에서param[:id]와 같은 발언을 가져와 대입합니다.
새로 고침@post.html.erb를 통해 표시
각 URL에 해당하는 투고 데이터를 표시하세요!
④ 완성
세부 화면에 대한 링크를 만듭니다.
투고 일람 페이지에서 각 발언 상세 페이지의 링크를 만듭니다.
각 발언 내용의 부분을 누르면 상세한 페이지로 이동할 수 있습니다
link_to(post.content, "/posts/#{post.id}")
.새 발언 페이지 만들기
· 새로운 발언 페이지 준비
새 투고 페이지는 "localhost: 3000/posts/new"의 URL을 통해 접근할 수 있습니다.
이렇게 하려면 라우팅, 작업 및 뷰를 추가합니다.
동작은 new 동작입니다.
• 입력 창 만들기
HTML & CSS 과정에서 배운 <textarea>
탭이나 <input>
탭을 사용하면 입력 창을 만들 수 있습니다.
발송 단추에 '투고' 를 지정하는 것을 주의하십시오.
• 발언 저장 준비
• 투고 전 절차 보존
창의 발언 버튼을 누르면 Rails 측에 발언 데이터를 보냅니다.
이번에create 동작을 준비해서 받은 투고 데이터를 데이터베이스에 저장합니다.
create 동작의 URL은 type="submit"と、value="
입니다.
=========================
<※ 중요 ※ >
・create 동작의 라우트를 설정합니다.
지금까지 루트를 썼을 때「/posts/create」
지만, 형식의 값을 받아들이려면'post'가 필요합니다.(이 포스트는 포스트 모델의 포스트와 관계가 없습니다.)
보통 "get"이며, 표 값을 받아들일 때 "post"를 기억해야 합니다.
=========================
・표 발송 목적지 지정「get」
를 사용하여 양식에 입력한 데이터를 전송합니다.form_form_tagメソッド
와 같이 tag는 목적지를 보낼 URL을 지정합니다.
따라서 「form_tag(送信先のURL) do」
버튼을 누르면 데이터가 지정된 URL로 전송됩니다.
・create 제작 동작 내용
1、create 동작에 대응하는 보기가 없습니다
2. 발언을 저장할 수 없습니다
상술한 문제를 해결하지 않으면 폼을 발표하고 저장할 수 없기 때문에 다음과 같은 조작을 한다.<input type="submit" ...>
를 다른 URL로 사용합니다.転送(リダイレクト)
예redirect_toメソッド
입니다. 이 페이지로 전송할 수 있습니다.
전송이 완료되었지만 저장할 수 없기 때문에 다음은 투고 내용을 저장하는 것이다.
보낸 값을 DB에 저장합니다.
/name 속성
현재 상태에서는 발언 단추를 눌러도 입력한 내용을create 동작에 전달할 수 없습니다.
탭에 redirect_to
을 지정하면 입력 데이터를 보내고name 속성의 값「redirect_to(URL)」
을 키name属性
로 Rails 측에 보낼 수 있습니다.
• 양식에 입력한 데이터 수신
name 속성을 지정한 창에 입력한 데이터는 컨트롤러의 동작에서 수신할 수 있습니다.
형식의 데이터는 ハッシュ
에서 수신됩니다.params는name 속성으로 설정된 문자열을 키로 하는 산열입니다.
· 데이터베이스에 발언 저장
실제 저장된 프로그램에 관해서는'rails constore'에서 배운 것을 회상해 보세요.
다음 그림과 같이 포스트 인스턴스를 생성할 때 사용됩니다変数params
.포스트 인스턴스를 저장하여 발언 기능을 완성합니다!
변수 요약
변수 params 요약
입력 데이터를 수신하는 데 사용되는 params는 URL에서 id 값을 가져올 때도 사용되었습니다.
params는 다음과 같은 두 가지 사용법이 있으니 정리해서 기억하세요.
①○○'params[:content]
사용
②"name="○○"ルーティングのURLから値を取得する
Reference
이 문제에 관하여(rails 발언 기능 추가 방법 ※ 자신의 기록에 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/GAO69/items/7d951de4c7d3fdd658a4
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(rails 발언 기능 추가 방법 ※ 자신의 기록에 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/GAO69/items/7d951de4c7d3fdd658a4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)