Ruby on rails rails 3.1,如何定义全局常量?
我试图在Ruby on rails rails 3.1,如何定义全局常量?,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-3.1,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 3.1,我试图在config\environments\development.rb NEXT_PAGE_ID = 'next_page' 但是当我试图在视图中访问它时,我得到了这个错误 未初始化的常量ActionView::CompiledTemplates::下一页\u ID 我试图在/config/initializers/course\u builder中定义它,如下所示: NEXT_PAGE_ID = 'next_page' 但我也犯了同样的错误 重新启动服务器没有帮助。我能做什么 编辑
config\environments\development.rb
NEXT_PAGE_ID = 'next_page'
但是当我试图在视图中访问它时,我得到了这个错误
未初始化的常量ActionView::CompiledTemplates::下一页\u ID
我试图在/config/initializers/course\u builder
中定义它,如下所示:
NEXT_PAGE_ID = 'next_page'
但我也犯了同样的错误
重新启动服务器没有帮助。我能做什么
编辑
以下是全部错误:
未初始化的常量ActionView::CompiledTemplates::下一页\u ID
提取的源(第23行附近):
20:%>
21:
22:@page.position+1,:chapter\u id=>@page.chapter.id))
24:链接到“下一页”,下一页,{:id=>Next\u Page\u id}
25:完
26:%>
我将使用会话变量。在这种情况下(或在大多数情况下)不需要Globals,而且显然是有问题的
session[:current_page_id]
或
你可以做:
Object.const_set('NEXT_PAGE_ID', 'next_page')
但是,您可能应该为这类事情使用某种配置文件,而不是污染全局名称空间。
course\u builder
或course\u builder.rb
?请粘贴完整的错误以及如何使用下一页ID。该错误似乎表明您可能错误地使用了常量。理想情况下,您应该能够在初始值设定项或环境文件中声明一个常量。好的,完整的错误在上面的问题中。好的!就是这样,谢谢Chowlett,文件应该是course_builder.rb而不是course_builder,我忘了添加扩展名,它现在可以工作了:-)NEXT_PAGE_ID用于用作“NEXT PAGE”的href的ID,它总是“NEXT_PAGE”,它不是记录的ID。HTML DOM页面上的元素是否有更好的命名约定?我仍然无法使用全局常量。如果它总是那个ID,那么只需在其中键入那个ID,而不用担心常量。。。如果您不打算更改这样的小东西,那么没有必要对其进行配置。
session[:next_page_id]
Object.const_set('NEXT_PAGE_ID', 'next_page')