제목과 같이 복잡해 보이지만 실제로는 안됩니다. 나는 API를 위해 Rails를 사용하고 있고 배열을 받아들이는 엔드 포인트를 가지고있다. 모든 레코드를 반환하려면 배열에 속한 요소 중 적어도 하나와 일치하는 레코드를 반환하고 싶습니다.Ruby on Rails - 자식 레코드가 배열의 요소와 일치하는 모든 레코드를 반환하십시오.
예를 들어 내가 블로그를 만들고 있고 게시물과 태그가 있다고 가정 해 보겠습니다. 위의 가상의 예에서 routes.rb
get '/posts_by_tag' => 'posts#index_by_tag'
과 posts_controller.rb
def index_by_tag
tags = params[:tags].split(',')
@posts = Post.where(any element in Post.tags matches any element in tags)
render json: @posts.to_json, status: :ok
end
에 다음
GET http://localhost:3000/api/v1/posts_by_tag?tags=news,weather,life
:
내가 좋아하는 뭔가를 요청할 수 있습니다 , 나는 "News", "Weather"또는 "Life"중 하나에 대한 태그가있는 모든 게시물을 반환하려고합니다.
저는 노드에서 왔고 최근에 레일스와 많은 시간을 보내지 않았습니다. 그러나 이것은 매우 잘 정의 된 Rails/ActiveRecord 방식의 상황과 같습니다.
어떤 종류의 배열입니까? 어떤 데이터베이스를 사용하고 있습니까? – ollpu
저는 Postgres를 사용하고 있습니다. 배열은 Ruby의 String.split() 메소드에 의해 생성 된 배열 유형에 상관없이 사용할 수 있습니다. – jmknoll
그러나 어떤 유형의 배열이 post.tags입니까? Postgres 배열입니까? – ollpu