Rails の専門家の皆さん、Web アプリケーションのすべてのアクションに対して同じコードをどこでどのように実行するのか疑問に思っていました。記事を教えていただけるか、短いコード スニペットを提供していただければ幸いです。
助けていただける方、よろしくお願いします。
Rails の専門家の皆さん、Web アプリケーションのすべてのアクションに対して同じコードをどこでどのように実行するのか疑問に思っていました。記事を教えていただけるか、短いコード スニペットを提供していただければ幸いです。
助けていただける方、よろしくお願いします。
ApplicationController でフィルターを使用して、アプリケーション内のすべてのアクションのコードを実行します。すべてのコントローラーは ApplicationController から派生しているため、そこにフィルターを配置すると、フィルターが確実に実行されます。
class ApplicationController
before_filter :verify_security_token
def verify_security_token; puts "Run"; end;
end
あなたがフィルターについて話しているように私には聞こえます。
class MyController < ActionController::Base
before_filter :execute_this_for_every_action
def index
@foo = @bar
end
def new
@foo = @bar.to_s
end
def execute_this_for_every_action
@bar = :baz
end
end
すべてのコントローラーでフィルターを実行する場合は、フィルターをApplicationControllerに配置することもできます。
before_filter
各アクションの「前」にコードを実行する場合。
アクションを使用するたびにアクションを宣言したい場合は、アクションを入れてApplicationController
、任意のコントローラーでメソッドを呼び出すことができます。
別のアプローチは、次のようなヘルパーを使用することです。
module PersonHelper
def eat
{.. some code ..}
end
end
そしてあなたのコントローラーで:
class MyController < ActionController::Base
include PersonHelper
def index
eat
end
end