无法创建新页面:SitePrism 页面出现未初始化常量错误
Unable to create new pages: uninitialized constant error with SitePrism page
有几个类似的问题,但我的问题似乎有所不同,因为我基本上是在复制当前正在运行的文件。
我加入了一个团队,其中最后一个人留下了一个 cucumber/ruby 具有以下设置的框架:
- lib/pages/page1.rb
- 其中 page1.rb = class PageOne < SitePrism::Page
- 他们只是创建了一个新对象:@new_page_one = PageOne.new
我搜索了整个代码,看看他是否有 'require' 或 'include' 以及 'page1.rb'、'page1' 或 'PageOne',并且他没有,但即便如此,当一个人试图创建一个新对象时它仍然有效。
所以,现在我想创建一个新的 class,我只是将工作文件复制并粘贴到同一位置,并将所有文件重命名如下:
- lib/pages/page2.rb
- 其中 page2.rb = class PageTwo < SitePrism::Page
我遇到的问题是,当我尝试创建新对象时出现此错误:
- @new_page_two = PageTwo.new
NameError: uninitialized constant PageTwo
知道为什么第一个起作用而 copy/paste 在这种情况下不起作用吗?你有什么可以建议我试试的吗?
终于找到了。这似乎是这个特定项目的问题。
有一个文件正在实时加载 类,尽管它们是文件名的硬编码部分,因此找不到我的新文件,即
他们正在加载 *1.rb 页,而我复制了一份并将其重命名为 page2.rb...
值得指出的是,将 SitePrism 与 Cucumber 一起使用将使用 Cucumbers Autoloader,因此请务必在 env.rb
中手动覆盖它,因为在该页面的某个部分之前定义页面会导致失败。
确保你定义的页面由内而外。 IE。最小的部分(Sections),首先,然后是 Pages。
有几个类似的问题,但我的问题似乎有所不同,因为我基本上是在复制当前正在运行的文件。
我加入了一个团队,其中最后一个人留下了一个 cucumber/ruby 具有以下设置的框架:
- lib/pages/page1.rb
- 其中 page1.rb = class PageOne < SitePrism::Page
- 他们只是创建了一个新对象:@new_page_one = PageOne.new
我搜索了整个代码,看看他是否有 'require' 或 'include' 以及 'page1.rb'、'page1' 或 'PageOne',并且他没有,但即便如此,当一个人试图创建一个新对象时它仍然有效。
所以,现在我想创建一个新的 class,我只是将工作文件复制并粘贴到同一位置,并将所有文件重命名如下:
- lib/pages/page2.rb
- 其中 page2.rb = class PageTwo < SitePrism::Page
我遇到的问题是,当我尝试创建新对象时出现此错误: - @new_page_two = PageTwo.new
NameError: uninitialized constant PageTwo
知道为什么第一个起作用而 copy/paste 在这种情况下不起作用吗?你有什么可以建议我试试的吗?
终于找到了。这似乎是这个特定项目的问题。
有一个文件正在实时加载 类,尽管它们是文件名的硬编码部分,因此找不到我的新文件,即
他们正在加载 *1.rb 页,而我复制了一份并将其重命名为 page2.rb...
值得指出的是,将 SitePrism 与 Cucumber 一起使用将使用 Cucumbers Autoloader,因此请务必在 env.rb
中手动覆盖它,因为在该页面的某个部分之前定义页面会导致失败。
确保你定义的页面由内而外。 IE。最小的部分(Sections),首先,然后是 Pages。