Ste*_*ssi 5 ruby ruby-on-rails
在我的用户模型中,我有一些属性,如is_foos_admin和is_bars_admin,用于确定允许用户编辑哪种记录.
我想干掉我的编辑链接,目前看起来像这样:
<%= link_to 'Edit', edit_foo_path(foo), :class => 'edit' if current_user.is_foos_admin? %>
...
<%= link_to 'Edit', edit_bar_path(bar), :class => 'edit' if current_user.is_bars_admin? %>
Run Code Online (Sandbox Code Playgroud)
我想做一个帮助,让我传入一个foo或bar并获取一个链接进行编辑,如下所示:
<%= edit_link_for(foo) %>
帮助器可能看起来像这样(这不起作用):
def edit_link_for(thing)
if current_user.is_things_admin?
link_to 'Edit', edit_polymorphic_path(thing), :class => 'edit'
end
end
Run Code Online (Sandbox Code Playgroud)
与模型无关的edit_polymorphic_path方法让我在那里,但它是"is_things_admin"方法,我不知道如何通用化.如果我可以在帮助器中使用插值Ruby,我想做类似的事情
if current_user.is_#{thing.class.name.downcase.pluralize}_admin?
Run Code Online (Sandbox Code Playgroud)
但当然这不起作用.有任何想法吗?
Ale*_*tie 12
尝试使用send:
if current_user.send("is_#{@model}_admin?")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1985 次 |
| 最近记录: |