将作为find_by_sql方法的结果检索的数据存储在rails

时间:2015-07-16 20:02:09

标签: ruby-on-rails ruby rails-activerecord find-by-sql

我是ruby on rails的新手。我正在尝试从我的数据库中检索数据并在我的rails应用程序中进行操作。我试图在我的类Activity<中使用find_by_sql时遇到困难的ActiveRecord ::基

我有一个结构为

的费率表
id | Instrument Name | Category | Time_of_usage | Rates
1  | Instrument1     | Internal | Regular       | 25
2  | Instrument2     | Internal | Weekends      | 15  

以下是我想要实现的示例代码

sql2='SELECT Rates FROM New_billcodes_mock WHERE Category_name=?, Instrument_name=? and Time_zone_name=?'
result2=  find_by_sql[sql2,'Internal','Instrument1',time_zone_name]
database_billrate_value_normal=result2['Rates']

并使用database_billrate_value_normal变量进行操作。

如果我错了,请引导我走正确的道路。

1 个答案:

答案 0 :(得分:0)

我不清楚具有费率表的模型是活动还是NewBillcodeMock或Rate。

如果是Rate,你应该能够做到这样的事情:

database_billrate_value_normal = 
    Rate.where("category_name=? AND 
                instrument_name=? AND 
                time_zone_name=?",
                params[:category_name],
                params[:instrument_name],
                params[:time_zone_name]).pluck[:rates]

...假设你有一个带有必需属性值的哈希params,那就是实际的属性名称。

这将返回一组费率,然后您可以根据需要直接在Ruby中操作。