gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 07:11:17 24 4
gpt4 key购买 nike

在我的用户模型中,我有一堆属性,例如 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?")

关于ruby-on-rails - 在方法调用中插入 Ruby?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7881463/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com