【发布时间】:2016-07-14 06:15:10
【问题描述】:
我正在使用 Rails 4,我需要在我的活动记录模型中使用 find_by_sql。现在我面临两个严重的问题。第一个是它没有给我一个特定的数据是否给出#Employee:0x0000000b2a1718作为结果。我的模型名称是 Employee,tbale 名称是员工。我正在使用 pg。
请告诉我有什么解决办法。
第二个问题是如何在 find_by_sql 中使用的 sql 查询中编写任何 rails 变量。例如我想执行 find_by_sql("select firstname from employee where id=@var"),其中@var 是一个 ruby 变量。
我需要执行的实际查询是 select firstname from employee where comapact_string like %@var% using find_by_sql.
【问题讨论】:
-
我的第一个问题是为什么当您提供的示例不需要它时,您需要下拉到原始 SQL。
-
不,这只是一个示例查询。我需要执行的实际查询是 select firstname from employee where firstname like %@var%..... 不知道如何实现这一点。
-
ActiveRecord 仍然可以轻松满足这一要求。
-
你能告诉我怎么做吗?
-
你可以这样使用,Employee.where("id LIKE '%?%'", @var).select(:firstname)
标签: sql ruby-on-rails ruby postgresql activerecord