すべてのアクションでインスタンス変数を設定するメソッドを ApplicationController ファイルに作成しました。
def self.set_body_id(id)
print "This is test"
self.instance_variable_set(:@body_id, id)
end
このメソッドを別のコントローラーで呼び出すと、次のようになります。
class HostingController < ApplicationController
set_body_id "Test"
def index
end
end
.. そして、何も起こりません。@body_id
変数はビューで使用できませんでした。したがって、Railsコンソールを実行して、この関数が実行されるかどうかを確認すると、予想どおり、 aをThis is test
呼び出すと出力に文字列が表示されますHostingController.new
が、まだ@body_id
定義されていません。
またself
、 a から削除し、self.variable_instance_set
この行を a@body_id = "Test"
に置き換えても、これはまだ機能しませんでした。私は何を間違っていますか?
編集:
どこで間違えたかがわかります。クラスインスタンスを作成する前に、インスタンス変数を設定しようとしています。self.set_body_id
クラスに参加する必要があるようですが、initialize
その方法はまだわかりません。