すべてのアクションでインスタンス変数を設定するメソッドを 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その方法はまだわかりません。