gpt4 book ai didi

ruby-on-rails - 如何在 Ruby on Rails 辅助函数中动态设置常量?

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

我在 Rails 中有这个(简化的)辅助函数:

include Constants

def link_to_neighbour(direction, path)
symbol = direction.upcase.constantize
link_to symbol, path
end

lib/constants 中,我定义了这些常量:

PREVIOUS = "<<"
NEXT = ">>"

然而,当我在我的一个 View 中使用这样的东西时......

<%= link_to_neighbour('next', @user, user_path(@user)) %>

...我经常收到这个错误:

NameError
uninitialized constant NEXT

我在这里错过了什么?

感谢您的帮助。

最佳答案

你可以使用 ruby 的const_missing钩子(Hook)。

def self.const_missing(name)
const_set(name, some_value)
end

但这里的问题似乎是您没有在应用程序的 application.rb 中加载“lib/constants.rb”文件。

将这一行放在你的'config/application.rb'中

# Autoload lib/ folder including all subdirectories
config.autoload_paths += Dir["#{config.root}/lib/**/"]

如果您不想将这一行放在您的“config/application.rb”中,那么请将 constants.rb 从 lib 移动到您的“config/initializers/”文件夹中。您的 Rails 应用程序加载每个文件自动存在。

关于ruby-on-rails - 如何在 Ruby on Rails 辅助函数中动态设置常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17675450/

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