ruby-on-rails - Rails - name_scopes - 条件条件

标签 ruby-on-rails

如果我有以下named_scope

named_scope :scope_by_user_id, lambda {|user_id| {:conditions => ["comments.user_id = ?", user_id]}}

rails 有没有办法只在 user_id 不为零时应用该条件?

最佳答案

当然。您可以在 lambda 中放入任何其他 Ruby block 中的任何内容,因此只需修改它以仅在 user_id 不为零时返回 :conditions 哈希值。这里我使用了一个简单的三元条件:

named_scope :scope_by_user_id, lambda {|user_id|
  user_id.nil? ? {} : { :conditions => ["comments.user_id = ?", user_id] }
}

关于ruby-on-rails - Rails - name_scopes - 条件条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2352860/

相关文章:

ruby-on-rails - 您如何找出不熟悉的 Rails 项目中的 gem ?

ruby-on-rails - 由于库版本不兼容,无法创建 Rails 应用程序 - 加载错误

ruby-on-rails - 在瘦服务器上的 Rails 应用程序中启用 https

ruby-on-rails - 如何将 Angular 表单保存到我的 ruby​​ on rails 后端?

jQuery 不更新 Rails 中的嵌套表单

ruby-on-rails - 如何使用由外键代替 ID 的 accepts_nested_attributes_for 同步 has_many 关联?

ruby-on-rails - 如何使用opencv-ruby gem裁剪图像?

ruby-on-rails - ArgumentError 在 Ruby 版本 1.8.6 上创建 Time 类的实例

JQuery添加请求问题

ruby-on-rails - 如何通过 GMAIL API 发送带有 BCC header 的电子邮件?