【问题标题】:Rails table with a where clause带有 where 子句的 Rails 表
【发布时间】:2018-10-22 04:06:20
【问题描述】:

我有一个员工 NonAvailability 模型,而不是使用

显示表中的所有非可用性
<% @non_availabilities = NonAvailability.all %>
<% @non_availabilities.each do |non_availability| %>
<%= non_availability.employee.full_name %>
<%= non_availability.date %>
<%= non_availability.time %>
<%= non_availability.reason %>

我只想显示与某个员工 ID 相关的非可用性。 我该怎么做?

【问题讨论】:

    标签: ruby-on-rails each where-clause


    【解决方案1】:

    有多种方法可以在 Rails 中检索记录。例如,您可以使用where 方法过滤NonAvailabilityemployee_ids

    ids = [1,2,3,4] # ids of employee
    NonAvailabilty.where(employee_id: ids)
    

    如果您想使用方法链接,请在您的 EmployeeNonAvailability 模型中定义 has_manybelongs_to 关联。假设您的设计具有此规范。

    # employee.rb
    class Employee
      has_many :non_availabilities
    end
    
    # non_availability.rb
    class NonAvailability
      belongs_to :employee
    end
    

    然后您可以使用employee 对象检索所有non_availabilites

    employee = Employee.find_by(id: 1)
    employee.non_availabilities 
    

    有关更多信息,请访问此 Active Record 协会Guide

    【讨论】:

    • 如果我有一个 JS 变量,其中包含我想使用的员工的 id,我将如何采用这种方法?
    • 您可以在该特定路由上使用 ajax 请求。
    • 您可以使用嵌套资源使您的代码干净。你可以在这里阅读guides.rubyonrails.org/routing.html#nested-resources
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-16
    • 1970-01-01
    • 1970-01-01
    • 2011-07-23
    相关资源
    最近更新 更多