Контроллер Rails: вызов связанных записей модели в индекс - PullRequest
0 голосов
/ 21 января 2019

У меня проблема с этим контроллером. Активная запись запроса. У меня есть модель под названием «Представления», и с каждым представлением связана агентская активность. Я пытаюсь просто показать все поля «Представление» в строке, а также связанную с ними активность агента рядом с ним, используя запрос базы данных, но я получаю ошибки с этим, это слишком просто?:

@agent_activities = @submissions.find(:agent_activity)

Индекс представления действий

def index
 @agent_activities = @submissions.find(:agent_activity)
 @submissions = 
 SubmissionLocation.includes(:submission).where(location_id: 
 current_agent.Company_Business_Location).map(&:submission)
end

     <% @submissions.each do |submission| %>
  <tr>
    <td><%= submission.First_Name %></td>
    <td><%= submission.Last_Name %></td>

    <% if user_signed_in? %>
    <td><%= submission.Phone %></td>
    <td><%= submission.Email %></td>
    <%else%>
      <% end %>
    <td><%= submission.Desired_Location %></td>
    <td><%= submission.number_of_beds %></td>
    <td><%= submission.number_of_occupants %></td>
    <td><%= submission.Rent_price_per_month_gbp %></td>


    <% if user_signed_in? %>
    <td><%= submission.Max_move_in_date %></td>
    <td><%= submission.Tenant_Occupation %></td>
    <td><%= submission.Contact_me_on %></td>
    <td><%= submission.Furnished %></td>
    <td><%= submission.Current_Address %></td>
    <td><%= submission.Property_Requirements %></td>

    <%else%>
      <% end %>

      <% Array(@agent_activities).each do |agent_activity|%>

    <td><%= agent_activity.Status %></td>
    <td><%= agent_activity.Notes %></td>

     <% end%>
   <td><%= link_to 'See More', submission %></td>
     <% end %>

Представленные модели

   class Submission < ApplicationRecord
   belongs_to :user, :optional => true


   has_many :agent_activities, inverse_of: :submission
   has_many :agents, through: :agent_activities

   accepts_nested_attributes_for :agent_activities, :reject_if=> proc 
  {|attributes| attributes[:entry].blank?}, :allow_destroy => true

  has_many :submission_locations

  attr_accessor :location_1, :location_2, :location_3
  end

Модель активности агента

   class AgentActivity < ApplicationRecord

   belongs_to :submission, :optional => true, inverse_of: 
   :agent_activities #has submission_id foreign key in table
   belongs_to :agent, :optional => true, inverse_of: :agent_activities 

   end

1 Ответ

0 голосов
/ 22 января 2019

Вы назначаете @submissions ПОСЛЕ того, как пытаетесь набрать find для него.Вам нужно изменить порядок.

РЕДАКТИРОВАТЬ: Также вы неправильно используете ассоциацию.Это не похоже, что у вас есть модель SubmissionLocation.

Должно быть:

def index
 @submissions = Submission.where() #fill this query out
end

А затем при циклическом просмотре submissions в представлении вы можете вызвать submission.agent_activities

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...