2013-06-03 2 views
0

find_by_sql을 사용하여 작업 영역을 선택하려고합니다.ruby ​​변수를 사용하여 find_by_sql을 바꿉니다.

이 시도 I : 다음 SQL의 where 부분은 일부 루비 코드에 대해 테스트 할 필요가

<% 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| %> 

하지만를, 도움을 <%= current_user.employee.id %>

감사를 사전 처리하지 않는 것 !

답변

4

구문에 약간의 실수가 있습니다. find_by_sqlwhere은 값에 ? 표기법을 사용하는 경우 배열을 필요로합니다. 모든

<% 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| %> 
+0

감사합니다! – Reddirt

1

먼저 다음과 같이 콘트롤러 측에 선택 코드를 삽입, 훨씬 더 거기 :
또한, current_user.employee.id
과 함께 쿼리를 교체 보간 할 필요가 없다

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 %> 
+0

좋은 지적 - 고마워요! – Reddirt

관련 문제