繁体   English   中英

关联模型Rails 3的ActiveRecord查询

[英]ActiveRecord Query of associated model Rails 3

我在rails中有三个模型,Project(日期,has_many:project_ Savings),用法(月,金额,has_many:project_savings)和MonthlyProjectSaving(金额,belongs_to:usages,:projects)。

设置它的目的是使每个项目都具有一定的节省量,相当于节省了数个月的使用时间。 我正在尝试以最安全的方式找到所有具有相应project.date > = usage.month的项目节省,以及usage.amount == 0 usage.monthproject.date都是日期类型。

下面基本上是我要获取的内容,但是我尝试了多种方法并且无法正确获取语法。

在我的项目显示视图中:

s = @project.monthly_project_savings
s.where(s.usage.month >= @project.date).where(s.amount: 0)

我更喜欢一个不会​​对SQL注入开放的解决方案。 干杯!

我认为您可能正在寻找类似的内容,但是我不确定什么是monthly_project_savings ,或者使用的类型是Usage#month和Project#date。

s.joins(:usages).where('usages.month >= ?', @project.date).where(amount: 0)

在字符串中使用带占位符的.where完全可以,因为参数会自动加引号。 您应避免使用直接SQL修改或使用不受信任的参数进行插值。 详细信息: http : //guides.rubyonrails.org/security.html#sql-injection

简而言之:在视图中进行查询不是非常MVC; 最好在控制器中甚至在模型中做到这一点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM