Rails의 사용자 지정 경로 기본 사항
특정 순서로 이 작업을 수행할 필요는 없지만 프런트엔드와 백엔드 사이의 브리지가 경로이므로 거기서 시작하겠습니다. 따라서
routes.rb
파일에 프로필을 정의합니다.Rails.application.routes.draw do
namespace :api do
get "/users", to: "users#index"
post "/signup", to: "users#create"
get "/me", to: "users#show"
post "/login", to: "sessions#create"
delete "/logout", to: "sessions#destroy"
get "/profile", to: "users#profile"
resources :breweries do
resources :reviews, shallow: true
end
end
end
다음으로 검토를 통해 has_many 관계를 선언하여 사용자 지정 경로 연결에 액세스할 수 있습니다. 여기에서 사용자
has_many :reviewed_breweries, through: :reviews, source: :brewery
가 표시됩니다.class User < ApplicationRecord
has_many :breweries, dependent: :destroy
has_many :reviews
has_many :reviewed_breweries, through: :reviews, source:
:brewery
has_secure_password
validates :username, presence: true, uniqueness: true
end
우리는 커스텀 라우트가 사용자 컨트롤러에서 우리에게 돌려줄 데이터를 정의할 것입니다. 이 경우 사용자가 리뷰를 남긴 모든 양조장을 표시하도록 프로필을 정의합니다.
class Api::UsersController < ApplicationController
skip_before_action :authorized!, only: :create
def index
render json: User.all
end
def create
user = User.create!(user_params)
session[:user_id] = user.id
render json: user, status: :created
end
def show
render json: @current_user
end
def profile
reviewed = @current_user.reviewed_breweries
render json: reviewed
end
private
def serialized_user
@user.to_json(include: :breweries)
end
def user_params
params.permit(:username, :password,
:password_confirmation, :image_url, :bio)
end
end
다음으로 우리가 만든 Profile.js 파일의 프런트엔드에서 가져오기 요청을 만든 다음 사용자가 볼 수 있도록 페이지에 원하는 데이터를 렌더링합니다. 마지막으로 App.js 파일에 경로를 추가하여 Profile.js 파일을 렌더링합니다.
반환되는 것은 현재 로그인한 사용자의 프로필 페이지이며 사용자가 리뷰를 남긴 모든 양조장 목록을 표시합니다. 이것이 저에게 그랬던 것처럼 여러분이 학습 과정에서 몇 가지 기본 사항을 유지하는 데 도움이 되기를 바랍니다.
Happy Coding!
Reference
이 문제에 관하여(Rails의 사용자 지정 경로 기본 사항), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/walktheworld/basics-of-custom-routes-in-rails-9in텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)