Использование service.rb в rails - получение ошибки метода - PullRequest
0 голосов
/ 24 сентября 2018

Я пытаюсь использовать службы в рельсах, чтобы уменьшить размер контроллера.У меня есть модель событий с полями user_id среди других.Я бы хотел выбрать трех лучших пользователей, которые организовали больше всего мероприятий.Это первый раз, когда я использую Службы, и мне сказали, что настоятельно рекомендуется поддерживать модель как в скине, так и в контроллере.

Мой billboard_service.rb:

class BillboardService


  attr_reader :user, :params, :event



  def most_event_organized
    Event.group(:user_id).order('count_all desc').count.first(3)
  end


  def event_find(user_id)
    Event.where(user_id: user_id).includes(:user_id)
  end

end

Мой взгляд (очень ранняя стадия):

<%= @bill_board.most_event_organized %>

И мой контроллер построен на эшафот.Я получаю следующую ошибку:

ActionView::Template::Error (undefined method `most_event_organized' for nil:NilClass):
    1: <div class="line_separation_equilibree"></div>
    2: <h3> league </h3>
    3: <%= @bill_board.most_event_organized %>
    4: <div class="col-lg-4">
    5: 
    6: <br>

Кто-нибудь знает, как это должно работать, пожалуйста?Спасибо

1 Ответ

0 голосов
/ 24 сентября 2018

Необходимо создать новый объект BillboardService перед вызовом метода

@bill_board = BillboardService.new()
@bill_board.most_event_organized
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...