首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >列出某一类别的所有职位

列出某一类别的所有职位
EN

Stack Overflow用户
提问于 2015-03-20 18:30:51
回答 2查看 752关注 0票数 0

我目前有一个posts模型,其中有一个列。我希望在某些类别中显示所有的帖子。

点击“技术”类链接-加载所有以苹果为分类的帖子。

无法在堆栈溢出上找到任何东西,但我可能找错了东西。任何帮助都将是辉煌的和感激的!

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-20 19:00:34

Post.where(category: 'Animals')

将返回所有具有指定类别的员额。

至于问题下的评论-是的,你可以受益于拥有额外的模型Category,因为post可以有更多,而不仅仅是一个类别。

您将将该关系定义为以下内容之一:

  1. HBTM has_and_belongs_to_many :categories # post.rb has_and_belongs_to_many :posts # category.rb
  2. has_many通过

post.rb

代码语言:javascript
复制
has_many :categories_posts
has_many :categories, through: :categories_posts

category.rb

代码语言:javascript
复制
has_many :categories_posts
has_many :posts, through: :categories_posts

categories_posts.rb

代码语言:javascript
复制
belongs_to :category
belongs_to :post

编辑

要将选择类别(Ies)添加到表单中,请向其添加以下内容(假设Category具有name属性):

代码语言:javascript
复制
<%= f.select :categories, Category.pluck(:id, :name), {}, multiple: true %>

还不要忘记在允许的params (posts_controller.rb)中列出类别:

代码语言:javascript
复制
def post_params
  params.require(:post).permit(:attr1, :attr2, category_ids: [])
end
票数 1
EN

Stack Overflow用户

发布于 2015-03-20 19:04:14

在post.rb模型中,添加一个作用域

代码语言:javascript
复制
scope :animals, -> { where(category: 'Animals') }

然后,在控制器中,只需调用:

代码语言:javascript
复制
Post.all.animals
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29173482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档