J'ai un contrôleur de reprise et un contrôleur de bienvenue dans mon application. Le contrôleur de bienvenue a seulement une action d'index qui est là pour la page racine. Le but du contrôleur de CV est de télécharger (nouveau/créer), télécharger (télécharger) etc. fichiers pdf comme un utilisateur connecté et cela fonctionne très bien jusqu'à présent.Comment accéder à une variable à partir d'un autre contrôleur pour effectuer une action de téléchargement personnalisée
Je souhaite également implémenter la fonction de téléchargement de CV sur la page de démarrage (welcome_controller/index).
Comment puis-je accomplir ceci? Depuis que je ne peux pas appeler la variable pour accéder au modèle de reprise depuis le contrôleur de bienvenue. Comment devraient être les routes? Que dois-je modifier sur le welcome_controller?
routes.rb
Rails.application.routes.draw do
devise_for :users
root 'welcomes#index'
resources :resumes do
get :download, on: :member
end
get '*path' => redirect('/')
end
resumes_controller.rb
class ResumesController < ApplicationController
around_filter :catch_not_found
before_action :find_resume, only: [ :show, :edit, :update, :destroy, :download ]
before_action :authenticate_user!
def show
end
def new
if @resume = current_user.resume
redirect_to @resume
else
@resume = Resume.new
end
end
def create
@resume = current_user.build_resume(resume_params)
if @resume.save
redirect_to @resume
else
render :new
end
end
def edit
end
def update
if @resume.update resume_params
redirect_to @resume, notice: "Your resume was successfully saved!"
else
render 'edit'
end
end
def destroy
@resume.destroy
redirect_to new_resume_path, notice: "Your resume was successfully deleted!"
end
def download
send_data @resume, type: "application/pdf", disposition: "attachment"
end
private
def resume_params
params.require(:resume).permit(:user_id, :download_file, :remove_download_file)
end
def find_resume
@resume = Resume.find(params[:id])
end
def catch_not_found
yield
rescue ActiveRecord::RecordNotFound
redirect_to(root_url, :notice => 'Record not found')
end
end
CV/show.html.erb
...
...
<%= link_to "Download", download_resume_path(@resume), "data-turbolinks" => false %>
welcomes_controller.rb
class WelcomesController < ApplicationController
def index
end
end