通过关联查询从 has_many 获取数据
query to fetch data from has_many through association
class Employee < ActiveRecord::Base
has_many :sim_employees, dependent: :destroy
has_many :sims, through: :sim_employees
end
在我的 sim_employees table 我有 employee_id sim_d 和 is_local::boolean.
id employee_id sim_d is_local
1 1 2 1
2 1 3 0
3 1 5 0
4 2 1 0
5 2 8 0
所以现在我的要求是
employees/index.html.erb
<%@employees.each do |employee|%>
<%=employee.name%>
# here I need a query if employee.id is_local is 1 for all employee than it will show local. If it is a combination of both 1 and 0 than it will show local/std if its 0 then it will show std. Please let me know how I will fetch this data from sim_employees table here.
<%end%>
现在我需要一个查询,如果 employee.id is_local 对所有员工都是 1,那么它将显示本地。如果它是 1 和 0 的组合,那么它会显示 local/std 如果它是 0 那么它会显示 std。请告诉我如何从 sim_employees table 获取这些数据。提前致谢。
def of_call_type
call_types = self.sim_employees.map(&:is_local)
if call_types.include?(true) and call_types.include?(false)
"Local/STD"
elsif call_types.include?(true)
"Local"
else
"STD"
end
end
把这个方法写在employee.rb
可见
<%@employees.each do |employee|%>
<%= employee.name%>
<%= employee.of_call_type %>
<%end%>
class Employee < ActiveRecord::Base
has_many :sim_employees, dependent: :destroy
has_many :sims, through: :sim_employees
end
在我的 sim_employees table 我有 employee_id sim_d 和 is_local::boolean.
id employee_id sim_d is_local
1 1 2 1
2 1 3 0
3 1 5 0
4 2 1 0
5 2 8 0
所以现在我的要求是
employees/index.html.erb
<%@employees.each do |employee|%>
<%=employee.name%>
# here I need a query if employee.id is_local is 1 for all employee than it will show local. If it is a combination of both 1 and 0 than it will show local/std if its 0 then it will show std. Please let me know how I will fetch this data from sim_employees table here.
<%end%>
现在我需要一个查询,如果 employee.id is_local 对所有员工都是 1,那么它将显示本地。如果它是 1 和 0 的组合,那么它会显示 local/std 如果它是 0 那么它会显示 std。请告诉我如何从 sim_employees table 获取这些数据。提前致谢。
def of_call_type
call_types = self.sim_employees.map(&:is_local)
if call_types.include?(true) and call_types.include?(false)
"Local/STD"
elsif call_types.include?(true)
"Local"
else
"STD"
end
end
把这个方法写在employee.rb
可见
<%@employees.each do |employee|%>
<%= employee.name%>
<%= employee.of_call_type %>
<%end%>