Ruby on rails 创建客户Rails查询
我正在构建一个带有javascript前端的Rails 5.0应用程序。 我想让我的用户在使用前端的表单界面(如过滤)获取项目列表时构建自己的查询 例如:Ruby on rails 创建客户Rails查询,ruby-on-rails,Ruby On Rails,我正在构建一个带有javascript前端的Rails 5.0应用程序。 我想让我的用户在使用前端的表单界面(如过滤)获取项目列表时构建自己的查询 例如: Select Projects WHERE Status IS "pending" AND Title IS NOT "Building". 或 有我可以用的宝石吗?如何在后端使其动态(和安全) 感谢所有的帮助 更新 我想我可能已经找到了一个叫做“洗劫”的解决办法。好吗 如果您正在寻找一种让用户能够搜索项目状态的方法,您可以使用范围。没有太
Select Projects WHERE Status IS "pending" AND Title IS NOT "Building".
或
有我可以用的宝石吗?如何在后端使其动态(和安全)
感谢所有的帮助
更新
我想我可能已经找到了一个叫做“洗劫”的解决办法。好吗
如果您正在寻找一种让用户能够搜索项目状态的方法,您可以使用
范围
。没有太多的代码发布,所以我不知道你的控制器和模型叫什么,但我使用了一个项目模型作为例子
在索引操作中添加
def index
@projects = Project.all
if params[:search].present?
@projects = @projects.by_status_and_title(params[:search])
end
end
在模型中创建范围
#
scope :by_status_and_title, ->(title_and_stats) { where('title LIKE ? OR status LIKE ?', "%#{title_and_stats}%","%#{title_and_stats}%" ) if title_and_stats.present? }
或者您可以创建单独的作用域
scope :by_status, ->(stats) { where('status LIKE ?', "%#{stats}%") }
scope :by_title, ->(t) { where('title LIKE ?', "%#{t}%") }
在您的视图中,将搜索参数传递给控制器
<%= form_tag(some_path, method: 'get', class: 'form-inline justify-content-center') do %>
<%= search_field_tag 'search', params[:search], class: 'form-control mb-2 mr-sm-3 mb-sm-0 input-width', placeholder: 'Search' %>
<%= submit_tag "Search", class: 'btn btn-primary btn-block-sm-down', :name => nil %>
<% end %>
零%>
如果您正在寻找一种让用户能够搜索项目状态的方法,您可以使用范围
。没有太多的代码发布,所以我不知道你的控制器和模型叫什么,但我使用了一个项目模型作为例子
在索引操作中添加
def index
@projects = Project.all
if params[:search].present?
@projects = @projects.by_status_and_title(params[:search])
end
end
在模型中创建范围
#
scope :by_status_and_title, ->(title_and_stats) { where('title LIKE ? OR status LIKE ?', "%#{title_and_stats}%","%#{title_and_stats}%" ) if title_and_stats.present? }
或者您可以创建单独的作用域
scope :by_status, ->(stats) { where('status LIKE ?', "%#{stats}%") }
scope :by_title, ->(t) { where('title LIKE ?', "%#{t}%") }
在您的视图中,将搜索参数传递给控制器
<%= form_tag(some_path, method: 'get', class: 'form-inline justify-content-center') do %>
<%= search_field_tag 'search', params[:search], class: 'form-control mb-2 mr-sm-3 mb-sm-0 input-width', placeholder: 'Search' %>
<%= submit_tag "Search", class: 'btn btn-primary btn-block-sm-down', :name => nil %>
<% end %>
零%>
要有这样的内置查询,您可以使用提供许多功能的gem。要有这样的内置查询,您可以使用提供许多功能的gem。谢谢!这我可以做没有问题。我想要的是允许用户创建自己的自定义查询,通过表单查询数据库。例如多个选择和布尔值等等。谢谢!这我可以做没有问题。我想要的是允许用户创建自己的自定义查询,通过表单查询数据库。例如,使用多个选择和布尔值等。