0

我是 ruby​​ on rails 的新手。我正在尝试从我的数据库中检索数据并在我的 rails 应用程序中进行操作。我在我的班级 Activity < ActiveRecord::Base 中尝试使用 find_by_sql 时被卡住了

我有一个结构为的费率表

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 变量进行我的操作。

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

4

1 回答 1

0

我不清楚带有费率表的模型是 Activity 还是 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 中进行操作。

于 2015-07-16T20:25:05.267 回答