【发布时间】:2016-04-17 22:00:17
【问题描述】:
如上所述。有没有办法将变量存储在rails中的视图中以供以后使用,而无需在该视图的控制器函数中设置它?
例如
<% bagel = @bagels.active_bagel %>
...
<%= bagel.delicious? %>
【问题讨论】:
-
您是要在一个视图中两次渲染同一个百吉饼,还是希望百吉饼在请求中持续存在?
-
@NateSHolland 我希望在每个请求中初始化并保存该变量,以便以后在当前请求中使用,无需持久化
-
接下来会发生什么?更多观点?如果是这样...也许您应该在控制器中获取/存储变量以传递到您将使用的各种视图中。
-
@TarynEast 我知道可以在控制器中完成,我问是否可以在视图中完成。这个想法是我的 .html.erb 的开头根据条件设置一个变量,然后在 .html.erb 的更下方,该变量被使用...
-
这是可能的,但这不是好的做法。如果您可以在控制器中执行此操作,那么您可能应该这样做。如果您在 same 视图模板中(而不是在另一个模板中),那么可以确定 - 继续设置变量(我们一直这样做),但是如果您转到另一个要使用的模板这个变量......那么它应该在调用范围内设置,而不是在多个模板中使用的魔法变量,如果你明白我的意思:)
标签: ruby-on-rails variables model-view-controller view model