0

次のメソッドをビューレイヤーで使用できるようにするにはどうすればよいですか?

# app/controllers/base_jobs_controller.rb
class BaseJobsController < ApplicationController
  def self.filter_name
    (controller_name.singularize + "_filter").to_sym
  end
end

次のようなビューヘルパーで使用したいと思います。

module ApplicationHelper
  def filter_link(text, options = {})
    # Need access to filter_name in here....
  end
end
4

1 に答える 1

2

の代わりにhelper_method、そのような機能をモジュールに含めることを好みます。

module BaseJobsHelp
  def filter_name
    (controller_name.singularize + "_filter").to_sym
  end
end

次に、モジュールをとに含めBaseJobsControllerますApplicationHelper

class BaseJobsController < ApplicationController
  include BaseJobsHelp

  # ...
end


module ApplicationHelper
  include BaseJobsHelp

  def filter_link(text, options = {})
    # You can access filter_name without trouble
  end
end

モジュール内のメソッドの内容によっては、特定のデータ(つまり、現在のコントローラーの名前)にアクセスするために別のメソッドを使用する必要がある場合があります。

于 2012-07-09T20:53:40.283 に答える