ブロック ヘルパーを作成しようとしていますが、current_page にアクセスする方法がわかりません。クラスの中から。
私のヘルパーファイルは次のようになります。
class NavList
include ActionView::Helpers::TagHelper
include ActionView::Helpers::UrlHelper
def header(title)
content_tag :li, title, class: 'nav-header'
end
def link(title, path, opts={})
content_tag :li, link_to(title, path), class: opts[:class]
end
end
def nav_list(&block)
new_block = Proc.new do
helper = NavList.new
block.call(helper)
end
content_tag :ul, capture(&new_block), class: 'nav nav-list'
end
そして、私はヘルパーを使用することができます
<%= nav_list do |nl| %>
<%= nl.header 'Location' %>
<%= nl.link 'Basic Information', url_for(@department), class: current_page?(@departments) ? 'active' : '' %>
<%= nl.link 'Employees', department_users_path(@department) %>
<% end %>
しかし、私がやりたいのは、そのアクティブなクラスを常に引き受ける必要がないことです。だから私はこのようなことをしたいと思います
def link(title, path, opts={})
css_class = 'inactive'
css_class = 'active' if current_page?(path)
content_tag :li, link_to(title, path), class: opts[:class]
end
しかし、current_page を使用する方法が見つかりませんか? NavList クラス内から。見つからないリクエストメソッドについて説明します