前提・実現したいこと
こんにちは、Rubyを勉強しはしめたばかりの者です。
Ruby on Rails 6
のActionController
についての質問になります。
格Action毎の前処理の実装方法について、どのような手段が正しいのか質問させてください。
ActionController
を継承して以下のようなcontrollerを作成いたしました。
HelloController
ruby
1class HelloController < ActionController::Base 2 @@title = 'タイトルタイトル' 3 @@message = ''; 4 def initialize() 5 end 6 def beforeEachAction 7 if params[:message] != nil then 8 @title = @@title 9 @message = params[:message] || @@message 10 end 11 end 12 def index 13 self.beforeEachAction() 14 if @title == '' || @message == '' then 15 redirect_to action: :other, 16 params: { 17 'message': 'from another page' 18 } 19 end 20 end 21 def other 22 self.beforeEachAction() 23 end 24end
router.rb
ruby
1Rails.application.routes.draw do 2 get 'hello/index' 3 get 'hello', to: 'hello#index' 4 get 'hello/other' 5 get 'hello', to: 'hello#other' 6end
質問したいこと
HelloController
にてbeforeEachAction
を格Action毎に呼び出しています。
格Action毎に必要な前処理を呼び出す場合、他にもっと良いやり方はございますでしょうか?
また、前処理以外に、後処理等もこのような他methodを新たに作成して、毎回呼び出すような方法以外に、やり方はありますでしょうか?
もし、コードなどで不自然な点、改善点などもございましたらご指摘いただければ幸いです。
よろしくお願い申し上げます。m(_ _ )m
補足情報(FW/ツールのバージョンなど)
Ruby: 2.7.3
Rails: 6.1.3
docker image: ruby:2.7
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/15 04:39
2021/04/15 04:47