加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 在方法调用中插入Ruby?

发布时间:2020-12-17 03:59:32 所属栏目:百科 来源:网络整理
导读:在我的用户模型中,我有一些属性,如is_foos_admin和is_bars_admin,用于确定允许用户编辑哪种记录. 我想干掉我的编辑链接,目前看起来像这样: %= link_to 'Edit',edit_foo_path(foo),:class = 'edit' if current_user.is_foos_admin? %...%= link_to 'Edit',ed
在我的用户模型中,我有一些属性,如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? %>

我想做一个帮助,让我传入一个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

与模型无关的edit_polymorphic_path方法让我在那里,但它是“is_things_admin”方法,我不知道如何通用化.如果我可以在帮助器中使用插值Ruby,我想做类似的事情

if current_user.is_#{thing.class.name.downcase.pluralize}_admin?

但当然这不起作用.有任何想法吗?

解决方法

尝试使用发送:

if current_user.send("is_#{@model}_admin?")

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读