Post.where(category: 'Animals')
вернет все сообщения с заданной категории.
Что касается комментариев по вопросу - да, вы можете получить дополнительную модель Category
, потому что почта может иметь более одной категории.
Вы бы определить отношение как одно из следующих действий:
HBTM
has_and_belongs_to_many :categories # post.rb has_and_belongs_to_many :posts # category.rb
has_many через
post.rb
has_many :categories_posts
has_many :categories, through: :categories_posts
category.rb
has_many :categories_posts
has_many :posts, through: :categories_posts
categories_posts.rb
belongs_to :category
belongs_to :post
РЕДАКТИРОВАТЬ
, чтобы добавить выбора категории (й) с образованием, добавьте следующее к нему (при условии Category
имеет name
атрибутов):
<%= f.select :categories, Category.pluck(:id, :name), {}, multiple: true %>
Также не забудьте белый список категорий в разрешенных Params (posts_controller.rb
):
def post_params
params.require(:post).permit(:attr1, :attr2, category_ids: [])
end
Ваш запрос: 'Post.where (category: category_name)' Is t его то, что вы хотите, или вам нужно, как реализовать упомянутую вами особенность? –
Btw вы можете не создавать также модель категории и иметь отношение «один ко многим» между категорией и почтой. – igavriil
В настоящее время у меня нет модели категории, у меня есть только строковый столбец, который позволяет мне делать <% = f.выберите: category, ['Tech', 'Animals', 'News'],: prompt => 'Select One'%> Будет ли модель категории лучше круглая? – Jonathan