0

次のように定義された Facebook アプリ ID の構成変数があるとします。

TestSiteRails::Application.configure do
  config.facebook_app_id = '123146123188122'
end

この変数をすべてのアクションで使用できるようにして、メイン レイアウト application.html.haml で使用できるようにします。

!!! html
%html
  %head
  %body
    #fb-root
    :javascript
      window.fbAsyncInit = function() {
        // init the FB JS SDK
        FB.init({
          appId      : '#{@facebook_app_id}', // Configured facebook app id
          channelUrl : '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel File for x-domain communication
          status     : true, // check the login status upon init?
          cookie     : true, // set sessions cookies to allow your server to access the session?
          xfbml      : true  // parse XFBML tags on this page?
        });

    = yield :contents 

各コントローラー アクションでこれを行うコードを繰り返すのではなく、どのようにすればこれをすべてのアクションで使用できるようにできますか?

4

2 に答える 2

1

すべてのコントローラーがそれを継承するように、それを ApplicationController に入れることができます。

class ApplicationController
  before_filter :set_facebook_app_id

  private

  def set_facebook_app_id
    @facebook_app_id ||= Rails.configuration.facebook_app_id
  end
end

または、ビューからもアクセスできるようにする必要がある場合は、ヘルパー メソッドとして次のようにします。

class ApplicationController
  def facebook_app_id
    Rails.configuration.facebook_app_id
  end
  helper_method :facebook_app_id
end
于 2013-01-02T20:15:39.460 に答える
0

application_controller でbefore_filterを使用することもできますが、それを使用して定数 ID を使用する場合は、定数を使用できると思います。

于 2013-01-02T20:14:58.323 に答える