如何在 sinatra 视图中渲染部分内容(haml in haml)?
我有一个简单的 sinatra 应用程序,它使用 haml 和 sass 作为视图。其中一个视图(位于视图文件夹中)是我的导航菜单的一部分。我试图从 index.haml 渲染它,但出现以下错误:参数数量错误 (1 for 2)
我尝试使用 index.haml 中的以下行渲染它
.navigation
= render :partial => "nav"
I have a simple sinatra app that uses haml and sass for the views. One of the views (located in the views folder) is a partial for my navigation menu. I am trying to render it from index.haml but I get the following error: wrong number of arguments (1 for 2)
I am trying to render it with the following lines in index.haml
.navigation
= render :partial => "nav"
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
你可以只使用 Sinatra 的 haml 函数:
You can just use Sinatra's haml function:
或者你可以这样做:
并将你的部分包含在:
Or you could just do this:
And include your partial with:
我是这样做的(比 @kfl62 的答案更简单,比 @jm3 的答案功能更丰富):
在 Haml 文件中使用它,例如:
Here's how I do it (more simply than @kfl62's answer, more feature-rich than @jm3's answer):
Use it in your Haml file like:
编辑:!!!已过时!!!阅读下面Jason的答案!
您正在尝试什么在
rails
中起作用!Sinatra
没有partial
方法。Sinatra
上partial
的实现看起来像 这个(来源要点) 来自 github:包括此方法,您可以在
.haml
文件中调用partial
,例如=partial("partial_name")
如果你想在其他视图中
渲染
一个视图,语法是= render(:haml,:'rel_path_to_view',:locals => {:optional => option})
注意
rails
和sinatra 之间的语法差异
关于render
方法!EDIT: !!! OUTDATED !!! Read Jason's answer below!
What are you trying works in
rails
!Sinatra
has nopartial
method. An implementation ofpartial
onSinatra
looks like this (source gist) from github:Including this method, you may call
partial
in your.haml
files, like= partial("partial_name")
If you want to
render
a view in an other view syntax is= render(:haml,:'rel_path_to_view',:locals => {:optional => option})
Notice the syntax differences between
rails
andsinatra
regardingrender
method!