Fix render error

parent 81c677f6
Pipeline #1085 failed with stages
in 0 seconds
...@@ -9,4 +9,18 @@ class ApplicationController < ActionController::Base ...@@ -9,4 +9,18 @@ class ApplicationController < ActionController::Base
flash[:warning] = Settings.user.warning_signin flash[:warning] = Settings.user.warning_signin
redirect_to login_path redirect_to login_path
end end
def render_error_404
respond_to do |format|
format.html { render template: 'errors/error_404', status: 404 }
format.all { render nothing: true, status: 404 }
end
end
def render_error_500
respond_to do |format|
format.html { render template: 'errors/error_500', status: 500 }
format.all { render nothing: true, status: 500 }
end
end
end end
...@@ -17,7 +17,10 @@ class AppliedJobsController < ApplicationController ...@@ -17,7 +17,10 @@ class AppliedJobsController < ApplicationController
end end
def show def show
@applied_jobs = current_user.job_applieds.order(updated_at: :desc).page(params[:page]).per(Job::LIMIT_PAGE) @count = current_user.job_applieds.count
return if @count.zero?
@applied_jobs = current_user.job_applieds.order("job_applieds.updated_at DESC").page(params[:page]).per(Job::LIMIT_PAGE)
return render_error_404 if @applied_jobs.blank?
end end
def confirmation def confirmation
......
class ErrorsController < ApplicationController
def error_404
end
def error_500
end
end
...@@ -2,13 +2,14 @@ class FavoriteJobsController < ApplicationController ...@@ -2,13 +2,14 @@ class FavoriteJobsController < ApplicationController
before_action :sign_in_validation, only: %i[create destroy index] before_action :sign_in_validation, only: %i[create destroy index]
def index def index
page = Integer(params[:page] || "1") rescue 0 @count = current_user.favorite_jobs.count
return if @count.zero?
page = Integer(params[:page] || "1") rescue 0
return redirect_to favorite_jobs_path unless page.positive? return redirect_to favorite_jobs_path unless page.positive?
@count = current_user.favorite_jobs.count @favorited_jobs = current_user.favorite_jobs.includes(job: :cities).order_favorite.page(page).per(Job::LIMIT_PAGE)
@favorited_jobs = current_user.favorite_jobs.order_favorite.page(page).per(Job::LIMIT_PAGE) return render_error_404 if @favorited_jobs.blank?
return redirect_to error_404_path if @favorited_jobs.blank?
end end
def create def create
......
class JobAppliedsController < ApplicationController
before_action :sign_in_validation, only: %i[new confirmation create show]
before_action :find_job_id, only: [:new]
def new
session[:job_id] = params[:job_id]
if session[:job_applied].present?
user_name = session[:job_applied]['name']
user_email = session[:job_applied]['email']
end
session[:job_id] ||= session[:get_job_id]
user_name ||= current_user.name
user_email ||= current_user.email
founded_application = JobApplied.exists?(user_id: current_user.id, job_id: session[:job_id])
return redirect_to job_detail_path(session[:job_id]) if founded_application
@job_applied = current_user.job_applieds.new(name: user_name,
email: user_email)
end
def show
@users = current_user.job_applieds.order("job_applieds.updated_at DESC").page(params[:page]).per(Job::LIMIT_PAGE)
redirect_to error_404_path if @users.blank?
end
def confirmation
session[:get_job_id] = session[:job_id]
@job_applied = current_user.job_applieds.new(apply_params)
session[:job_applied] = @job_applied
@job_applied.cv_user = current_user.cv_user if apply_params[:cv_user].blank?
@job_applied.job_id = session[:get_job_id] if @job_applied.job_id.blank?
if @job_applied.invalid?
flash.now[:danger] = @job_applied.errors.full_messages.join('<br>')
render :new
end
end
def create
@job = Job.find_by(id: session[:get_job_id])
@job_applied = current_user.job_applieds.new(apply_params)
@job_applied.job_id = session[:get_job_id] if @job_applied.job_id.blank?
@job_applied.cv_user.retrieve_from_cache!(apply_params[:cv_user])
if @job_applied.save
JobAppliedMailer.apply_job(@job_applied, @job).deliver_later
JobAppliedMailer.sending_admin(@job_applied, @job, ENV['GMAIL_USERNAME']).deliver_later
end
session.delete(:job_applied)
end
private
def apply_params
params.require(:job_applied).permit(:name, :email, :cv_user)
end
def find_job_id
return redirect_to jobs_path unless Job.find_by(id: params[:job_id])
end
end
...@@ -3,28 +3,36 @@ class JobsController < ApplicationController ...@@ -3,28 +3,36 @@ class JobsController < ApplicationController
before_action :general_variables before_action :general_variables
def index def index
@count = Job.count
return if @count.zero?
@jobs_list = Job.all.page(params[:page]).per(Job::LIMIT_PAGE) @jobs_list = Job.all.page(params[:page]).per(Job::LIMIT_PAGE)
return redirect_to error_404_path if @jobs_list.blank? return render_error_404 if @jobs_list.blank?
end end
def city_jobs def city_jobs
@count = City.count
return if @count.zero?
@city = City.find_by(converted_name: params[:converted_name]) @city = City.find_by(converted_name: params[:converted_name])
@jobs_list = @city.jobs.page(params[:page]).per(Job::LIMIT_PAGE) @jobs_list = @city.jobs.page(params[:page]).per(Job::LIMIT_PAGE)
return redirect_to error_404_path if @jobs_list.blank? return render_error_404 if @jobs_list.blank?
@result_for_job = @city.jobs.count @result_for_job = @city.jobs.count
end end
def industry_jobs def industry_jobs
@count = Industry.count
return if @count.zero?
@industry = Industry.find_by(converted_name: params[:converted_name]) @industry = Industry.find_by(converted_name: params[:converted_name])
@jobs_list = @industry.jobs.page(params[:page]).per(Job::LIMIT_PAGE) @jobs_list = @industry.jobs.page(params[:page]).per(Job::LIMIT_PAGE)
return redirect_to error_404_path if @jobs_list.blank? return render_error_404 if @jobs_list.blank?
@result_for_job = @industry.jobs.count @result_for_job = @industry.jobs.count
end end
def company_jobs def company_jobs
@count = Company.count
return if @count.zero?
@company = Company.find_by(converted_name: params[:converted_name]) @company = Company.find_by(converted_name: params[:converted_name])
@jobs_list = @company.jobs.page(params[:page]).per(Job::LIMIT_PAGE) @jobs_list = @company.jobs.page(params[:page]).per(Job::LIMIT_PAGE)
return redirect_to error_404_path if @jobs_list.blank? return render_error_404 if @jobs_list.blank?
@result_for_job = @company.jobs.count @result_for_job = @company.jobs.count
redirect_to jobs_path unless @company redirect_to jobs_path unless @company
......
<div class="container"> <div class="container">
<% if @applied_jobs.count > 0 %> <% if @count > 0 %>
<h1 class="text-center my-job-label">My Job</h1> <h1 class="text-center my-job-label">My Job</h1>
<%= paginate @applied_jobs, outer_window: 2, window: 1 %> <%= paginate @applied_jobs, outer_window: 2, window: 1 %>
<%= render partial: "job_applieds/my_jobs", collection: @applied_jobs, as: :applied_job %> <%= render partial: "applied_jobs/my_jobs", collection: @applied_jobs, as: :applied_job %>
<%= paginate @applied_jobs, outer_window: 2, window: 1 %> <%= paginate @applied_jobs, outer_window: 2, window: 1 %>
<% else %> <% else %>
<h1 class="let-apply">Let's apply job</h1> <h1 class="let-apply">Let's apply job</h1>
......
<% provide(:title, 'City Jobs') %> <% provide(:title, 'City Jobs') %>
<div class="container"> <div class="container">
<div class="search-bar"> <% if @count > 0 %>
<%= render 'layouts/search_bar' %> <div class="search-bar">
</div> <%= render 'layouts/search_bar' %>
<div class="total-jobs"> </div>
<div class="total">Total: <strong><%= @result_for_job %></strong> jobs in <strong><%= @city.name %></strong></div> <div class="total-jobs">
</div> <div class="total">Total: <strong><%= @result_for_job %></strong> jobs in <strong><%= @city.name %></strong></div>
<%= render "jobs/pagination" %> </div>
<div class="job-list"> <%= render "jobs/pagination" %>
<%= render partial: "job", collection: @jobs_list, as: :job %> <div class="job-list">
</div> <%= render partial: "job", collection: @jobs_list, as: :job %>
<%= render "jobs/pagination" %> </div>
<%= render "jobs/pagination" %>
<% else %>
<h1>Don't have city</h1>
<% end %>
</div> </div>
<% provide(:title, 'Company Jobs') %> <% provide(:title, 'Company Jobs') %>
<div class="container"> <div class="container">
<div class="search-bar"> <% if @count > 0 %>
<%= render 'layouts/search_bar' %> <div class="search-bar">
</div> <%= render 'layouts/search_bar' %>
<div class="total-jobs"> </div>
<div class="total">Total: <strong><%= @result_for_job %></strong> jobs in <strong><%= @company.name %></strong></div> <div class="total-jobs">
</div> <div class="total">Total: <strong><%= @result_for_job %></strong> jobs in <strong><%= @company.name %></strong></div>
<%= render "jobs/pagination" %> </div>
<div class="job-list"> <%= render "jobs/pagination" %>
<%= render partial: "job", collection: @jobs_list, as: :job %> <div class="job-list">
</div> <%= render partial: "job", collection: @jobs_list, as: :job %>
<%= render "jobs/pagination" %> </div>
<%= render "jobs/pagination" %>
<% else %>
<h1>Don't have company</h1>
<% end %>
</div> </div>
<% provide(:title, 'Jobs') %> <% provide(:title, 'Jobs') %>
<div class="container"> <div class="container">
<%= render 'layouts/flash' %> <% if @count > 0 %>
<div class="search-bar"> <%= render 'layouts/flash' %>
<%= render 'layouts/search_bar' %> <div class="search-bar">
</div> <%= render 'layouts/search_bar' %>
<div class="row total-jobs"> </div>
<div class="col-4"><strong>Total: <%= @total_job %> jobs</strong></div> <div class="row total-jobs">
</div> <div class="col-4"><strong>Total: <%= @total_job %> jobs</strong></div>
<%= render "jobs/pagination" %> </div>
<div class="job-list"> <%= render "jobs/pagination" %>
<%= render partial: "job", collection: @jobs_list, as: :job %> <div class="job-list">
</div> <%= render partial: "job", collection: @jobs_list, as: :job %>
<%= render "jobs/pagination" %> </div>
<%= render "jobs/pagination" %>
<% else %>
<h1>Don't have job</h1>
<% end %>
</div> </div>
<% provide(:title, 'Industry Jobs') %> <% provide(:title, 'Industry Jobs') %>
<div class="container"> <div class="container">
<div class="search-bar"> <% if @count > 0 %>
<%= render 'layouts/search_bar' %> <div class="search-bar">
</div> <%= render 'layouts/search_bar' %>
<div class="total-jobs"> </div>
<div class="total">Total: <strong><%= @result_for_job %></strong> jobs in <strong><%= @industry.name %></strong></div> <div class="total-jobs">
</div> <div class="total">Total: <strong><%= @result_for_job %></strong> jobs in <strong><%= @industry.name %></strong></div>
<%= render "jobs/pagination" %> </div>
<div class="job-list"> <%= render "jobs/pagination" %>
<%= render partial: "job", collection: @jobs_list, as: :job %> <div class="job-list">
</div> <%= render partial: "job", collection: @jobs_list, as: :job %>
<%= render "jobs/pagination" %> </div>
<%= render "jobs/pagination" %>
<% else %>
<h1>Don't have industry</h1>
<% end %>
</div> </div>
...@@ -26,7 +26,7 @@ Rails.application.routes.draw do ...@@ -26,7 +26,7 @@ Rails.application.routes.draw do
get '/my/jobs', to: 'applied_jobs#show', as: :my_jobs get '/my/jobs', to: 'applied_jobs#show', as: :my_jobs
resources :jobs resources :jobsgits
get 'detail/:id', to: 'jobs#show', as: :job_detail get 'detail/:id', to: 'jobs#show', as: :job_detail
get 'jobs/city/:converted_name', to: 'jobs#city_jobs', as: :city_jobs get 'jobs/city/:converted_name', to: 'jobs#city_jobs', as: :city_jobs
...@@ -49,9 +49,6 @@ Rails.application.routes.draw do ...@@ -49,9 +49,6 @@ Rails.application.routes.draw do
resources :cities, only: [:index] resources :cities, only: [:index]
root to: "top_pages#index" root to: "top_pages#index"
get 'error_404', to: 'errors#error_404', as: :error_404
get 'error_500', to: 'errors#error_500', as: :error_500
match '/404', via: :all, to: 'errors#error_404' match '/404', via: :all, to: 'errors#error_404'
match '/500', via: :all, to: 'errors#error_500' match '/500', via: :all, to: 'errors#error_500'
end end
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment