【发布时间】:2011-08-12 16:21:12
【问题描述】:
我有一个帮手,我觉得这很可笑,但我一直想不出改进它的方法。这是有问题的助手:
# 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,这个助手确定该按钮是否应该存在以及它的状态。
要显示管理菜单按钮,需要有登录用户,并且该用户需要是管理员,或者该用户需要查看允许他管理(编辑)的集合。
我的问题是:像这样的辅助方法是否正常 - 即您是否发现您不时需要这种复杂的方法 - 还是我遗漏了什么?您能提出改进此方法的方法吗?
【问题讨论】:
-
我认为在与脚手架关联的特定帮助文件的帮助程序中包含此帮助程序方法是可以的。
标签: ruby-on-rails ruby ruby-on-rails-3 refactoring helper