我试图在同一视图中显示所有工作人员和属于他们的所有帖子。
我正在用
取出所有工人<%= @workers.each do |worker| %>
然后发布。
<%= worker.posts.each |post| %>
这很好用,但我想在帖子中添加一个简单的搜索功能
即
<%= worker.posts.search(params[:search]).each |post| %>
但是这给了我一个未定义的搜索方法错误。
我的理解是我不能添加.search,除非它在控制器内,但我无法弄清楚如何在控制器中定义帖子。
我在控制器中尝试过的事情:
@posts = worker.posts
@posts = @workers.posts
我也尝试添加:
@worker = Worker.find(params[:id])
试着躲开,但在我尝试之前会出错。
非常感谢一些帮助
解决方案:
绕道而行。
<% Post.search_post(params[:search_post]).where(worker_id: worker.id).each do |month, posts| %>
我确信有一个更好,更清洁的解决方案,但无论如何这都适用于我想要的。
答案 0 :(得分:0)
worker.posts应返回一个ActiveRecord :: Relation,它没有名为search的方法。
如果要添加一个,则必须在模型中执行此操作。
class Post < ActiveRecord::Base
scope :search, ->(options) {
# logic goes here
}
end