gpt4 book ai didi

ruby-on-rails-3 - 如何区分 Rails 中相同命名的辅助方法?

转载 作者:行者123 更新时间:2023-12-04 07:06:47 26 4
gpt4 key购买 nike

我在两个不同的助手中创建了助手函数 (link_to_alert)

  1. app/helpers/posts_helper.rb
  2. app/helpers/students_helper.rb

现在从 app/views/student/index.html.haml

调用我的辅助函数 link_to_alert

问题是调用 app/helpers/posts_helper.rb 中存在的相同函数的 View

如何从我的 app/views/student/index.html.haml View 调用 app/helpers/students_helper.rb 中的辅助函数?

最佳答案

由于默认情况下所有助手都包含在所有 Controller 中,因此最常见的方法是对函数进行不同的命名,例如 link_to_alert_postslink_to_alert_students

第二种方法是禁用包括所有助手并在 Controller 中选择您需要的助手。

config.action_controller.include_all_helpers = false

class PostsController
helper :posts
end

class StudentsController
helper :students
end

在这种情况下,Posts Controller 呈现的所有 View 都将具有来自 Posts Helper 的功能,而对于 Students Controller - 来自 Students Helper。

第三种方法是使用 module_function 并在所有调用前加上辅助模块名称。不过,我从未见过它特别用于 Rails 助手。

module StudentsHelper
module_function

def link_to_alert
end
end

StudentsHelper.link_to_alert

另一种方法是使用演示器或装饰器,但这是一个完全不同的话题。

关于ruby-on-rails-3 - 如何区分 Rails 中相同命名的辅助方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11152865/

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