【Rails】 두 개의 표를 한데 모아 원하는 열만 추출하고 JSON으로 되돌아오는 견본 코드
개시하다
Rails를 통해 두 테이블을 결합하고 원하는 열만 JSON이 반환하는 샘플 코드로 추출합니다.
이 인코딩으로 만들어진 JSON은 끼워 넣지 않아서 간단하기 때문에 사용하기 쉽다.
컨디션
OS: macOS Catalina 10.15.1
Ruby: 2.6.5
Rails: 6.0.2.1
전제 조건
User 모델 및 Post 모델 있음
class User < ActiveRecord::Base
has_many :posts
end
post.rbclass Post < ApplicationRecord
belongs_to :user
end
원하는 데이터
각 표의 열 수는 다음과 같다.
"불필요한 데이터를 갖고 싶지 않아!"
이 경우 JSON은
#欲しい
가 있는 열을 뽑기만 하면 된다.- usersテーブル
- id
- name #欲しい
- email
- ...
- postsテーブル
- id #欲しい
- name #欲しい
- description #欲しい
- user_id #欲しい
- date
- ...
이것은 아래 코드로 실현할 수 있다.결론
posts_controller.rb
def posts_needed
posts_needed = Post.joins(:user)
.select("
posts.id,
posts.name,
description, #ここはusersテーブルと名前が被らない
user_id, #ここはusersテーブルと名前が被らない
users.name AS user_name #別名を付けられる
")
render json: posts_needed
end
[포인트]
Post.joins(:user)
로posts표와users표를 결합.select("カラム1, カラム2, ...")
posts.name
또는 users.name
처럼 テーブル名.カラム名
로 지정하지 않으면 둘 다 체크 아웃할 수 없음テーブル名.カラム名 AS 任意名
에서 내보낼 열 이름출력
내보내기(JSON)
[
{
"id": 1,
"name": "投稿名1",
"description": "投稿詳細1",
"user_id": 2,
"user_name": "Brutus"
},
{
"id": 2,
"name": "投稿名2",
"description": "投稿詳細2",
"user_id": 3,
"user_name": "Omae Dattanoka"
},
...
]
네스트된 것보다 간단하고 사용하기 쉬운 JSON 완성끝말
끝까지 읽어주셔서 감사합니다
누군가에게 참고가 되었으면 좋겠네요
참조된 웹 사이트(지금까지 지원해 주셔서 감사합니다)
Reference
이 문제에 관하여(【Rails】 두 개의 표를 한데 모아 원하는 열만 추출하고 JSON으로 되돌아오는 견본 코드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/terufumi1122/items/18dfd04ab95f106e13f7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)