在 Rails3 中使用多个作用域参数
在我的 Rails3 应用程序中,我有 AR 范围,需要 3 个参数
两个代码值之间获取给定模块的错误详细信息,
#select * from error_codes where error_module_id=1 and code >0 and code < 100
scope :latest_error_code, lambda{ |module_id, min, max|
{:conditions => "error_module_id=#{module_id} and code >= #{min} and code <= #{max}"}
}
例如:我试图在控制台中的
ErrorCode.latest_error_code(1,0,100)
但当我尝试执行此操作时,我得到以下信息错误
multiple values for a block parameter (3 for 1)
,当我仔细观察时,AR 范围似乎不支持多个参数
1 - 这是真的吗? (AR 不支持范围的多个参数) 2 - 还有其他选择吗? 3 - 我在这里做错了什么吗?
提前致谢
In my Rails3 app I have AR scope which requires 3 parameters
Ex: I'm trying to get an error details for a given module between two code values
#select * from error_codes where error_module_id=1 and code >0 and code < 100
scope :latest_error_code, lambda{ |module_id, min, max|
{:conditions => "error_module_id=#{module_id} and code >= #{min} and code <= #{max}"}
}
in my console I do
ErrorCode.latest_error_code(1,0,100)
But when I try to execute this, I'm getting the following error
multiple values for a block parameter (3 for 1)
and when i did some goggling, it appears to be that AR scope doent support multiple parameters
1 - is it true? (AR doent support multiple params for scope)
2 - Is there any other alternative?
3 - Am I doing something wrong here?
thanks in advance
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
来自Active Record 查询界面指南:
所以你可能想要更像这样的东西:
From the Active Record Query Interface Guide:
So you probably want something more like this: