Я использую бэкэнд 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
в консоли, ничего не появляется.