这听起来有点复杂,但实际上不应该如此。我正在使用Rails作为API,并且有一个接受项目数组的端点。我想返回所有属于它的记录匹配数组中至少一个元素的记录。Ruby on Rails - 返回子记录与数组中元素匹配的所有记录
例如,假设我正在创建博客,并且有帖子和标签。
我可能要求是这样的:
GET http://localhost:3000/api/v1/posts_by_tag?tags=news,weather,life
然后在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
在假设的例子以上, 一世想要返回所有包含“新闻”,“天气”或“生活”标签的帖子。
我来自节点,最近没有花费太多时间在Rails上。但是这种感觉就像是有一种非常明确的Rails/ActiveRecord方法来实现这一点。
它是一种什么样的数组?你使用的是哪个数据库? – ollpu
我使用的是Postgres,而数组就是Ruby的String.split()方法生成的任何类型的数组。 – jmknoll
但是什么类型的数组是post.tags?它是一个Postgres数组吗? – ollpu