2
在我的用戶模型中,我有一堆屬性,如is_foos_admin和is_bars_admin,用於確定用戶允許編輯哪些類型的記錄。方法調用中的插值Ruby?
我想幹出我的編輯鏈接,目前看起來是這樣:
<%= 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? %>
我想打個幫手,讓我傳遞一個Foo或酒吧,並得到一個鏈接編輯它,像這樣:
<%= 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
模型不可知的edit_polymorphic_path方法讓我在那裏一半,但它是「is_things_admin」方法,我不知道如何通用。如果我可以在助手內部使用內插的Ruby,我想要做一些類似於
if current_user.is_#{thing.class.name.downcase.pluralize}_admin?
但是當然這是行不通的。有任何想法嗎?
的send()的伎倆精確!如果current_user.send(「是_#{thing.class.table_name} _admin?」),那麼我的幫助器的條件行變成' –