私は気が利いているヘルパーを持っていますが、私はそれを改善する方法を考えることができませんでした。ここで問題になっているヘルパーです:Rails:Helper Refactoring
# Shows Admin Menu Button
def admin_toggle_button
if user_signed_in? && (current_user.has_role?(:admin) || (@collection && can?(:curate,@collection)))
if session[:admin_menu] == :on
link_to('Admin Tools', edit_shared_path(:admin_menu => :off), :remote=>true, :class => 'selected', :id => 'admin_toggle_button', :title => 'Hide Admin Menu')
else
link_to('Admin Tools', edit_shared_path(:admin_menu => :on), :remote=>true, :id => 'admin_toggle_button', :title => 'Show Admin Menu')
end
end
end
自分のアプリケーションのメニューバーには、私はadmin_toggle_button
呼び出しはこのヘルパーは、そのボタンがその状態が何であるかに存在することとすべきか否かを判断します。
管理者用メニューボタンを表示するには、ログインしているユーザーがいる必要があります。そのユーザーは管理者である必要があります。また、ユーザーは自分が編集や編集を許可されているコレクションを表示する必要があります。
私の質問は:このようなヘルパーメソッドは通常どおりですか?つまり、この複雑なメソッドが必要と思われるのですか?何か不足していますか?この方法を改善する方法を提案できますか?
私はそのヘルパーメソッドを骨格に関連付けられた特定のヘルパーファイルのヘルパー内に持つことは大丈夫だと思います。 – rookieRailer