如何在不使用eval的情况下动态调用方法?

目前,这就是我正在做的事情:

    %table
      %thead
        %tr
          %th Nom
          %th Rôle
          %th{ width: "110px" }
      %tbody
        - @organization.users.each do |user|
          %tr
            %td
              %p.font-bold= user.full_name
              %p.font-sm.text-gray-600= user.email
            %td.capitalize= user.role
            %td
              = link_to 'Détails', eval("#{user.role}_path(user)"), class: 'primary'
              %a.danger Enlever de l'organisation

但是使用eval几乎总是一个坏主意,无论是出于性能问题还是出于安全问题。

回答

你可以使用send甚至更好public_send

public_send("#{user.role}_path", user)


以上是如何在不使用eval的情况下动态调用方法?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>