Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails通过使用ruby变量的sql查找_Ruby On Rails - Fatal编程技术网

Ruby on rails Rails通过使用ruby变量的sql查找

Ruby on rails Rails通过使用ruby变量的sql查找,ruby-on-rails,Ruby On Rails,我正在尝试使用find_by_sql选择工作顺序。sql的where部分需要针对一些ruby代码进行测试: 我试过这个: <% Workorder.find_by_sql("SELECT * FROM workorders w JOIN empgroups e USING (workgroup_id) WHERE e.employee_id = ?, <%= current_user.employee.id %>").each do |workorder| %> 但

我正在尝试使用find_by_sql选择工作顺序。sql的
where
部分需要针对一些ruby代码进行测试:

我试过这个:

<% Workorder.find_by_sql("SELECT * FROM workorders w JOIN empgroups e USING (workgroup_id) WHERE e.employee_id = ?, <%= current_user.employee.id %>").each do |workorder| %>

但是,它似乎没有预处理


谢谢你的帮助

您的语法有一点错误。
find_by_-sql
当您使用值的
符号时,其中
需要一个数组。
此外,不需要插入
当前用户.employee.id

将您的查询替换为:

<% Workorder.find_by_sql(["SELECT * FROM workorders w JOIN empgroups e USING (workgroup_id) WHERE e.employee_id = ?", current_user.employee.id]).each do |workorder| %>

您的语法有一点错误。
find_by_-sql
当您使用值的
符号时,其中
需要一个数组。
此外,不需要插入
当前用户.employee.id

将您的查询替换为:

<% Workorder.find_by_sql(["SELECT * FROM workorders w JOIN empgroups e USING (workgroup_id) WHERE e.employee_id = ?", current_user.employee.id]).each do |workorder| %>

首先,最好将选择代码放在控制器端,如下所示:

def your_controller_method
  @workorders = Workorder.find_by_sql('SELECT * FROM workorders w JOIN empgroups e USING (workgroup_id) WHERE e.employee_id = ?', current_user.employee.id)
end
然后您可以在视图中使用它:

<% @workorders.each do |workorder| %>
<% end %>

首先,最好将选择代码放在控制器端,如下所示:

def your_controller_method
  @workorders = Workorder.find_by_sql('SELECT * FROM workorders w JOIN empgroups e USING (workgroup_id) WHERE e.employee_id = ?', current_user.employee.id)
end
然后您可以在视图中使用它:

<% @workorders.each do |workorder| %>
<% end %>