Neo4j 在控制器中使用 params[:search] 并在模型中使用
Neo4j using params[:search] in controller and like in the model
索引方法中控制器中的行是:
@authors = Author.as(:a).search(params[:search]).paginate(:page => @page, :per_page => @per_page, return: :a, order: :name)
希望检索所有具有名称子字符串部分的作者。
作者模型中的搜索方式为:
private
def self.search(search)
where("name =~ '.*:search.*'", search: "%#{search}%")
end
我正在尝试使用与 ActiveModel 相同的模式,但出现错误:
name not defined (line 1, column 39) "MATCH (result_author:Author
) WHERE (name =~ '.:search. ') AND (result_author.search = {result_author_search}) WITH result_author as result_author RETURN COUNT(result_author)
不知道怎么写才好。
这种形式的 where
不起作用(尽管我们一直在谈论实现它)。你应该这样做:
def self.search(node_var, search)
all.where("#{node_var}.name =~ {search}").params(search: ".*#{search}.*")
end
@authors = Author.as(:a).search(:a, params[:search]).paginate(:page => @page, :per_page => @per_page, return: :a, order: :name)
all
在 class 方法中也很重要,它允许您制作这样的链
索引方法中控制器中的行是:
@authors = Author.as(:a).search(params[:search]).paginate(:page => @page, :per_page => @per_page, return: :a, order: :name)
希望检索所有具有名称子字符串部分的作者。
作者模型中的搜索方式为:
private
def self.search(search)
where("name =~ '.*:search.*'", search: "%#{search}%")
end
我正在尝试使用与 ActiveModel 相同的模式,但出现错误:
name not defined (line 1, column 39) "MATCH (result_author:Author
) WHERE (name =~ '.:search. ') AND (result_author.search = {result_author_search}) WITH result_author as result_author RETURN COUNT(result_author)
不知道怎么写才好。
这种形式的 where
不起作用(尽管我们一直在谈论实现它)。你应该这样做:
def self.search(node_var, search)
all.where("#{node_var}.name =~ {search}").params(search: ".*#{search}.*")
end
@authors = Author.as(:a).search(:a, params[:search]).paginate(:page => @page, :per_page => @per_page, return: :a, order: :name)
all
在 class 方法中也很重要,它允许您制作这样的链