gpt4 book ai didi

ruby-on-rails - 为devise的当前资源创建一个类似current_user的方法

转载 作者:数据小太阳 更新时间:2023-10-29 08:08:51 25 4
gpt4 key购买 nike

我想为设备的当前资源创建一个类似 current_user 的方法。假设我有两个资源,例如 User 和 Admin,并且 devise 与两者相关联。所以像往常一样,它动态创建它的默认方法,如 current_user 和 current_admin。

它通过在文件 lib/devise/controllers/helpers.rb 中这样定义来创建它:

def current_#{mapping}

如何将这样的新方法添加到它的动态方法中。

我想用设计方法实现它,这样当设计初始化时,我的方法也用相同的映射名称初始化。

最佳答案

将此代码复制到您的应用程序 Controller 中。你的问题就解决了。

Devise.mappings.each do |mapping, obj|
define_method "current_#{mapping}_email" do
eval("current_#{mapping}.email if current_#{mapping}")
end
helper_method "current_#{mapping}_email"

在根据您的资源名称使用的 View 页面/ Controller 上就像如果你有 resource_name 作为用户然后它的 'current_user_email'或者如果有管理员则 'current_admin_email'

关于ruby-on-rails - 为devise的当前资源创建一个类似current_user的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23293832/

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