论坛首页 编程语言技术论坛

rails中如何实现动态条件查询

浏览 3781 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-01-13  
原先在使用hibernate的过程中,发现它的动态条件查询很有用,也一直在使用。但在rails中似乎没有这类的功能,rails里面的finder仅仅提供了hql的功能。不知是否有人用rails实现过动态条件查询的?不要哪种硬拼sql的,希望像Criteriaed或者QBC那样的
   发表时间:2007-01-15  
不懂hibernate。但是感觉Rails实现你所说的“动态条件查询”一点也不难啊?看这个问题挂了这么多天了,没人愿意回答。只有好心说一句,你还是把书好好看看再说吧。
0 请登录后投票
   发表时间:2007-01-15  
没发现AR有这种功能,还好组装SQL比常规java要方便的多,引自beast代码:
引用
  
[:user_id, :forum_id].each { |attr| conditions << Post.send(:sanitize_sql, ["posts.#{attr} = ?", params[attr]]) if params[attr] }
    conditions = conditions.any? ? conditions.collect { |c| "(#{c})" }.join(' AND ') : nil
    @post_pages, @posts = paginate(:posts, @@query_options.merge(:conditions => conditions))
0 请登录后投票
   发表时间:2007-01-16  
liusong1111 写道
没发现AR有这种功能,还好组装SQL比常规java要方便的多,引自beast代码:
引用
  
[:user_id, :forum_id].each { |attr| conditions << Post.send(:sanitize_sql, ["posts.#{attr} = ?", params[attr]]) if params[attr] }
    conditions = conditions.any? ? conditions.collect { |c| "(#{c})" }.join(' AND ') : nil
    @post_pages, @posts = paginate(:posts, @@query_options.merge(:conditions => conditions))


我没有看懂,能不能详细解释解释?
0 请登录后投票
   发表时间:2007-01-28  
liusong1111 写道
没发现AR有这种功能,还好组装SQL比常规java要方便的多,引自beast代码:
引用
  
[:user_id, :forum_id].each { |attr| conditions << Post.send(:sanitize_sql, ["posts.#{attr} = ?", params[attr]]) if params[attr] }
    conditions = conditions.any? ? conditions.collect { |c| "(#{c})" }.join(' AND ') : nil
    @post_pages, @posts = paginate(:posts, @@query_options.merge(:conditions => conditions))

好像没有Criteriaed方便。如果有相等比较、between比较和like模糊查询的话,那还是要手工拼装查询语句
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics