2

我正在尝试遵循本教程: http:
//net.tutsplus.com/tutorials/ruby/singing-with-sinatra/

卡在“我们还将使用“<strong>视图文件”,它允许我们将视图的标记拆分为单独的文件。“

我的 basics.rb 文件运行良好。

我的文件存储如下:

Desktop/RubyForm/basics.rb
Desktop/RubyForm/view/form.erb 

然而,现在当我去的时候 http://localhost:9393/form,我受到了以下的欢迎:

Errno::EIO at /form 
Input/output error - <STDERR> file: lint.rb location: write line: 398
sinatra.error   
Errno::ENOENT: No such file or directory - 
  /Users/HelenasMac/Desktop/views/form.erb



更新!:
运行 ruby​​ basics.rb 并转到http://localhost:4567/form. 但是,在我运行 "shotgun basics.rb" 之后,我必须转到 http://localhost:9393/form,这时表单没有出现。

我究竟做错了什么?免责声明:超级初学者到 ruby​​ 并使用终端。

提前致谢!

4

2 回答 2

1

如果您无法开始shotgun工作,那么重新加载 Sinatra 的新推荐方法似乎是rerun.

要使用它:

> gem install rerun
> cd /Users/HelenasMac/Desktop/RubyForm
> rerun ruby basics.rb
于 2013-01-16T21:06:09.460 回答
0

显式设置视图目录

除非您对视图使用内联模板,否则enable :inline_templates如果默认值不适合您,您可能需要显式定义模板目录。文档描述了如何设置您的视图目录,如下所示:

:views - 查看模板目录

一个字符串,指定视图模板所在的目录。默认情况下,这被假定为应用程序根目录中名为“views”的目录(参见 :root 设置)。在应用程序的根目录中指定替代目录名称的最佳方法是使用引用 :root 设置的延迟值:

设置 :views, Proc.new { File.join(root, "templates") }

您可能还需要显式设置:root,并确保:root:views在您当前的工作目录中都有意义。

于 2013-01-16T20:26:03.353 回答