Nano Hash - криптовалюты, майнинг, программирование

объект рельсов равен нулю

У меня есть 2 модели: User и Group, у них есть ассоциация «многие ко многим» через третью модель, называемую GroupMembership. Таким образом, пользователь может быть членом многих групп, а группа может иметь много пользователей.

когда я нахожусь в консоли rails, все работает нормально, и я могу видеть группы пользователей, делая это

user1 = User.find_by(last_name: "Smith")
user1.groups

Однако я пытаюсь создать новый шаблон с именем mygroups.html.erb, и у меня возникает проблема с отображением результатов.

Я настраиваю собственный маршрут

  get 'mygroups' => 'users#mygroups'

затем я сделал шаблон mygroups.html.erb в представлении «Пользователи».

  <div class="container-fluid">
    <div class="col-md-8 offset-md-2 col-sm-12">  

      <% if @user.present? %>
        <h5>Groups</h5>
          <ul>
            <% @user.each do |user| %>
              <li>
                <%= user.groups %>
              </li>
            <% end %>
          </ul>
      <% end %>

    </div><!--./col-->
  </div><!--./container-->

В user_controller я подумал, что мне придется сделать что-то подобное, чтобы получить объект @user

  def mygroups
     @user = User.find(params[:id])
    # @groups = @user.groups
  end 

но я получаю следующую ошибку. Объект @user равен нулю.

ActiveRecord::RecordNotFound in UsersController#mygroups 
Couldn't find User with 'id'=

  • Похоже, параметры не попадают в действие вашего контроллера. Предполагая, что вы используете надежные параметры, убедитесь, что ваши параметры внесены в белый список, и попробуйте зарегистрировать params[:id], чтобы убедиться, что значение передано 05.01.2018

Ответы:


1

Похоже, что нет пользователя с идентификатором, переданным в параметре. Идентификатор должен быть числом.

Либо передайте параметр для существующего пользователя, либо вы можете попробовать

  def mygroups
    @user = User.find_by(id: params[:id])
    @groups = @user.groups if @user
  end 

Чтобы не получить ошибку.

05.01.2018
  • '@user = User.find_by(params[:id])' сработало, а также, когда я тестировал, используя @user = User.find_by(id: 1), я не уверен, почему find_by работал, а find нет. Я собираюсь прочитать о них. Спасибо еще раз. 05.01.2018
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..