実現したいこと
User controller / Deposit contoroller
の両方で、手数料率や税率等、共通する全く同じ値を共有したい。
共通させたいパラメータ
ruby
1stripe_fee = 3.6 2fee1 = 21.4 3fee2 = stripe_fee + fee1 4commission_rate = 1.0 * 75 / 100 5commission_rate_new = 1.0 * (100 - fee2) / 100 6transfer_fee = 300 7new_fee_day = Date.new(2023,4,1) #4月1日より手数料変更
これらの値を、各コントローラーで、呼び出したいです。
puts fee.stripe_fee → 3.6
と表示されてるといった事ができるようにしたいです。
どうしても実装することができません。
大変お手数おかけいたしますが、教えて頂けますと本当にうれしいです。
前提
Railsでクラウドファンディングのようなアプリを開発・運営しております。
キャンペーンなどで、手数料率を変更することがあるのですが、
そのたびに同じ修正を各コントローラーで変更する必要があり、記入漏れ等の管理に困っております。
試したこと
concernでmoduleを作成して、各コントローラーで呼び出すことにて良いのかと考え、
以下のように実装
参考記事
https://qiita.com/sssssatou/items/d5c64a073fe1211dbe49
controllers/concerns/fee.rb
ruby
1module Fee 2 extend ActiveSupport::Concern 3 4 stripe_fee = 3.6 5 fee1 = 21.4 6 fee2 = stripe_fee + fee1 7 commission_rate = 1.0 * 75 / 100 8 commission_rate_new = 1.0 * (100 - fee2) / 100 9 transfer_fee = 300 10 new_fee_day = Date.new(2023,4,1) 11 12end
users_contoroller.rb
ruby
1class UsersController < ApplicationController 2 include Fee 3 4 def show 5 puts Fee.stripe_fee 6 end 7end 8
発生している問題・エラーメッセージ
undefined method `stripe_fee' for Fee:Module
参照ページと同じ、puts Fee::stripe_feeにて記載した場合も同様のエラーが表示されております。
そもそものやり方や、基本が間違っているのかもしれません。
どなたかアドバイスを頂けると本当に助かります。
どうぞよろしくお願い申し上げます。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/03/16 08:00
2023/03/16 11:49