2015-10-09 33 views
0

如何将变量从一个视图传递到Sinatra中的部分视图?使用sinatra在视图之间传递变量(erb)

我已经尝试过这样的:

view1.erb

<%= erb_partial :view2, locals: {test: "hello"} %> 

view2.erb

<%= puts params[:test] %> 

而且我想:

view1.erb

<%= erb_partial :view2, test: "hello" %> 

info.但对于导轨和西纳特拉从控制器发送一个变量来查看,如this,但它并没有帮助我很遗憾。

有什么想法?

+0

视图文件是表现层和不包含的逻辑。这些可供选择的东西被传递给他们,他们不会通过可怕的事情。你可以从查看文件中获取查询字符串或表单变量等,也可以将它传递给另一个vew文件。但在这个过程中应该有一个逻辑 - 在sinatra他们是路线。如果您完全描述了这种情况,可能会发布更多有用的解决方案。 – marmeladze

回答

0

局部变量是正确地将传递给局部视图。因此,在局部视图中,它将作为正常的局部变量提供 - test。您不应使用params来访问它们,它所包含的数据与视图中可用的局部变量不同。

所以,你应该使用它,就像你如何使用正常的局部变量:

view2.erb

<%= test %> 
+0

完美的作品。 Thxs。 – karlihnos