Фильтр с атрибутом другой таблицы (один ко многим) в Rails
Я новичок в рельсах и сейчас работаю над своим классным проектом. У меня есть лидерство и таблица lead_comments, лидерство has_many lead_comments и lead_comment принадлежат ведущему, которые я установил.
В модели:
class Lead < ApplicationRecord
has_many :lead_comments
end
class LeadComment < ApplicationRecord
belongs_to :lead
end
В представлении индекса моего лида я пытаюсь настроить базу фильтра даты на Update_at в lead_comments, который является атрибутом из другой таблицы:
<div class="date-search">
<%= form_tag leads_path, method: :get do %>
<%= date_field_tag 'date_search[date_from]', @date_search.date_from %>
<%= date_field_tag 'date_search[date_to]', @date_search.date_to %>
<%= submit_tag 'Date Search' %>
<% end %>
</div>
<table>
<thead>
<tr>
<th>First Name</th>
<th>Last Name</th>
<th>Phone Number</th>
<th>Last Updated Date</th>
<th colspan="3">Action</th>
</tr>
</thead>
<tbody>
<% @leads.each do |lead| %>
<tr>
<td><%= lead.lead_firstname %></td>
<td><%= lead.lead_lastname %></td>
<td><%= lead.lead_phone %></td>
<td><%= lead.lead_comments.maximum(:updated_at) %></td>
<td><%= link_to 'Detail', lead %></td>
<td><%= link_to 'Edit/Update', edit_lead_path(lead) %></td>
<td><%= link_to 'Remove', lead, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
</tbody>
</table>
В моем ведущем контроллере я настроил другой контроллер для поиска потенциальных клиентов:
def index
@date_search = LeadSearch.new(params[:date_search])
@leads = @date_search.scope
end
В моей модели поиска потенциальных клиентов я считаю, что моя проблема:
class LeadSearch
attr_reader :date_from, :date_to
def initialize(params)
params ||= {}
@date_from = parsed_date(params[:date_from], 30.days.ago.to_date.to_s)
@date_to = parsed_date(params[:date_to], Date.today.to_s)
end
def scope
Lead.lead_comments.maximum(:updated_at).where('updated_at BETWEEN ? AND ?', @date_from, @date_to)
end
private
def parsed_date(date_string, default)
Date.parse(date_string)
rescue ArgumentError, TypeError
default
end
end
Моя таблица lead_comment имеет только один атрибут, который является комментарием, вместе с двумя автоматическими атрибутами даты, созданными Rails, create_at и updated_at.
Всякий раз, когда я запускаю приложение, я получаю сообщение об ошибке, которое сообщает мне неопределенный метод "lead_comments". Я думал, что уже установил отношения has_many и own_to, но это все еще не работает. Может кто-нибудь помочь мне и направить меня в правильном направлении? Спасибо за ваше время.