如何在不使用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)