ActiveRecord :: RecordNotFound (Не удалось найти <...> с 'id' =): - PullRequest
0 голосов
/ 28 июня 2019

Примечание : я новичок в RoR;Мой синтаксис: haml

В view я использую параметр в выражении if следующим образом:

- if @progress_board.cover_image.present?

Каждый раз, когда мой кодпри достижении этого я получаю следующую ошибку:

ActiveRecord::RecordNotFound (Couldn't find ProgressBoard with 'id'=):
app/controllers/progress_boards_controller.rb:340:in `get_panel_data'

Во-первых, cover_image объявлено в моей ProgressBoard model.Я уверен, что это работает, так как мне удалось отобразить это cover_image.

В моем controller, @progress_board объявлено в моем методе:

  def get_panel_data
        @progress_board = ProgressBoard.find(params[:progress_board_id])
   ...
  end

Вот мойroute.rb часть файла, связанная с проблемой:

  resources :progress_boards do
    collection do
      get :get_progress_data
      get :get_panel_data
      get :render_tab
    end
    member do
      get :open_or_archive
      get :pbbackground
      get :remove_cover
      get :get_panel_data
    end
  end

Я уже пытался заменить (params[:progress_board_id]) на (params[:progress_board]) и (params[:id]), но никто не сделал трюк

Чего мне не хватает

1 Ответ

0 голосов
/ 28 июня 2019

Вы получаете сообщение об ошибке из-за этой строки:

@progress_board = ProgressBoard.find(params[:progress_board_id])

Значение в params[:progress_board_id] не соответствует значению в столбце id таблицы ProgressBoard.

Вы должны убедиться, что передаваемый вами параметр будет существовать в столбце id в вашей таблице.

Вы можете использовать @progress_board = ProgressBoard.find_by(id: params[:progress_board_id]), который не вызовет исключение, если значение отсутствует в таблице БД.

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