Невозможно передать параметры из Ax ios Получить запрос в Rails - PullRequest
0 голосов
/ 08 мая 2020

Я использую бэкэнд Rails и интерфейс React / Redux. Когда я пытаюсь передать params в запросе get с использованием axios, он не отображается в методе индекса Rails в контроллере. Мне нужно передать current_user, чтобы отфильтровать и индексировать элементы для внешнего интерфейса в зависимости от того, кто просматривает элементы. Я подумал, что было бы лучше справиться с этим на бэкэнде, но мог бы попробовать и во фронтенде.

Вот мой axios запрос:

export const getNotes = currentUser => (dispatch) => {
  console.log(currentUser)
  axios
    .get(`/api/v1/notes/`, { params: { current_user: currentUser }} )

    .then((res) => {
      const notes = res.data;
      dispatch({ type: "GET_NOTES", payload: notes });
    })
    .catch((res) => console.log(res.errors))
};

и вот контроллер в Rails (хотя не уверен, что это даст ценную информацию):

class Api::V1::NotesController < ApplicationController
  before_action :find_note, only: [:show, :update, :destroy]
  before_action :authenticate_user, only: [:create, :update, :destroy]

  def index
    byebug 
    @private_notes = Note.where(is_public: false).joins(:user).where(id: curr_user.id) if curr_user
    @notes = Note.where(is_public: true)

    render :json => @notes, status: @ok 
  end

  def show
    render :json => @note, status: @ok 
  end


  def create 
    if curr_user
      @note = Note.create!(note_params)
      if @note.save 
        render :json => @note, status: @ok   
      else        
        render :json => { errors: @note.errors.full_messages }, status:  @unprocessible_entity
      end
    else     
      render :json => {}, status: 401
    end
  end

  def update
    if curr_user 
      @note.update(note_params) 
      if @note.save 
        render :json => @note, status: @ok 
      else       
        render :json => { errors: @note.errors.full_messages }, status:  @unprocessible_entity
      end
    else      
      render :json => {}, status: 401
    end
  end

  def destroy
    if curr_user
      note_id = @note.id
      @note.delete  
      render :json => { noteId: note_id }
    else      
      render :json => {}, status: 401
    end  
  end

  private 

  def find_note
    @note = Note.find(params[:id])
  end

  def note_params
    params.permit(:entry, :is_public, :service_id, :user_id, :current_user) 
  end


end

При прерывании byebug, когда я проверяю params в консоли, ничего не появляется.

...