【问题标题】:How to do a Sequel query with 'like'?如何使用“like”进行 Sql 查询?
【发布时间】:2013-12-26 19:25:39
【问题描述】:

我正在尝试实现一个表单来搜索我的帖子的标题。

这是控制器代码:

post '/search'  do
@results = Post.all(:Title.like => "%#{params[:query]}%")
erb :layout 
end

这是 layout.erb 代码:

<form action="/search" method="post">
 <input type="text" name="query"/><br />   
 <input type="submit" />
</form>
<% if @results %>
 <table>
  <%@results.each do |r|%>
  <tr valign="top">
  <td><%=r.Title%></td>
  </tr>
  <%end%>
 </table>
<% end %>

我收到一条错误消息,提示“未定义的方法 `like' for: Title: Symbol”。

【问题讨论】:

标签: ruby sinatra sequel


【解决方案1】:

试试

@results = DB[:posts].where(Sequel.like(:Title, "%#{params[:query]}%"))

【讨论】:

  • 这会返回Sequel::Models 吗?我需要在我的 Padrino 应用程序中使用它,但目前一直在寻找 DB 对我隐藏的位置;)
  • 我仍然对数据集/模型感到困惑,但这有助于:Seminar.grep(:description, '%emei%').all
【解决方案2】:

@results = DB[:posts].where{title.like("%#{params[:query]}%")}

参考:https://github.com/jeremyevans/sequel/issues/1103

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-29
    • 2012-08-11
    • 2021-05-13
    • 1970-01-01
    • 2017-03-19
    • 1970-01-01
    相关资源
    最近更新 更多