我有两个模型 - Blog和BlogTag。博客has_many:blog_tags和BlogTag belongs_to:blog:
blog.rb
has_many :blog_tags
blog_Tag.rb
belongs_to :blog
我想查询数据库,根据用户在表单字段中输入的内容,选择blog_tags表中具有匹配标签的所有博客。像这样:
Blog.where(blog_tags contain [array of tags])
有没有办法用ActiveRecord做到这一点?
答案 0 :(得分:0)
假设BlogTag有一列name
。
Blog.joins(:blog_tags).where(blog_tags: { name: [array of tags] }).uniq
这仍然会返回博客,但只会返回博客标签,其博客标签的名称位于数组中。
答案 1 :(得分:0)
另一种解决方法是将/*FONTS*/
@font-face {
font-family: MyriadProCond;
src: url(include/MyriadProCondRegular/MyriadProCondRegular.ttf); /* Путь к файлу со шрифтом */
src: url(include/MyriadProCondRegular/MyriadProCondRegular.woff);
src: url(include/MyriadProCondRegular/MyriadProCondRegular.otf);
src: url(include/MyriadProCondRegular/MyriadPro-Cond.eot);
}
*, body, p,h3,h4 {
font-family: 'MyriadProCond', Arial, sans-serif;
color: #fff;
}
关系传递给BlogTag
范围。
Blog
因此,ActiveRecord将构造一个子查询
而不是Blog.where(id: BlogTag.where(name: tags).select(:blog_id))
JOIN