rails 발언 기능 추가 방법 ※ 자신의 기록에 사용

6155 단어 Rails
2019/7/10
자동으로 생성된 열 확인
◇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から値を取得する

좋은 웹페이지 즐겨찾기