我正在使用 RailsCasts (#111) 中的高级搜索表单,但我想添加在带有集合复选框的子类别中搜索的可能性。
class Category < ActiveRecord::Base
# post_id, food_id, pet_id
class Food < ActiveRecord::Base
# id, name
class Pet < ActiveRecord::Base
# id, name
class Post < ActiveRecord::Base
# id, title.
在我的 search.rb 模型中,我尝试了:
posts = posts.where(food_ids: food_ids) if food_ids.present?
我创建了一个名为:Subcategorysearch.rb 的新模型,与 Categoty.rb 完全相同,但它仅用于搜索请求。里面有:post_id、food_id、pet_id。
无论有没有新模型,我总是得到:
ActiveRecord::StatementInvalid in Searches#show SQLite3::SQLException:没有这样的列:posts.food_ids
提前谢谢。
编辑:
当我创建一个新帖子时,子类别不在帖子表中,而是在类别表中。我需要使帖子搜索能够使用集合复选框过滤子类别。
编辑 2
我尝试了很多东西,但我觉得我有点迷路了。
“真正的”问题是执行像 Railscasts #111 - Advanced Search Form 之类的搜索引擎,并使用带有“分类”的 Railscasts #17 - HABTML Checkboxes 之类的东西。
我需要的最终结果是,例如:搜索帖子并能够使用复选框集合过滤结果:
Post tile = My first post
Food = Name 1
Pet = Name 2
...
然后,仅显示包含“我的第一篇文章”之类的标题、“名称 1”之类的食物或 ID 之类的帖子,对于宠物也是如此。
再次,提前感谢您的支持。