我想通过客户名称进行 ajax 搜索查询,因此我使用了 like 子句 (看到这个问题 https://stackoverflow.com/questions/26094430/safe-activerecord-like-query)。我正在考虑使用索引操作来响应来自clients_controller的json格式,但我已经使用它来响应html格式,同时对我列出的行进行分页将分页 and will_paginate-引导程序.
什么是最好的方法?制作一种新方法来响应 json 格式,还是应该使用带格式的索引方法?以及如何做到这一点?
我是 ruby on Rails 的新手
客户控制器.rb
def index
respond_to do |format|
format.html
{
#something like this I know that I would return me a syntax error
@client = Client.paginate(:page => params[:page])
}
format.json
{
#something like this I know that I would return me a syntax error
@client = Client.where("client_name LIKE ? ", "%#{params[:client_name]}%" )
}
end
end
def other_method
@client = Client.where("client_name LIKE ? ", "%#{params[:client_name]}%" )
respond_to do |format|
format.json {...}
end
end
在我看来,你应该只保留你的index
行动并积累你的范围@client
多变的。
请记住,您的 SQL 查询仅在执行类似 Array 方法时才会发送到数据库each
在你的变量上,而不是之前。
所以你可以写这样的东西:
def index
@client = Client.all
if params[:client_name].present?
@client = @client.where("client_name LIKE ? ", "%#{params[:client_name]}%")
else
@client = @client.paginate(page: params[:page])
end
respond_to do |format|
format.html
format.json
end
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)