如上所述。有没有办法将变量存储在rails的视图中供以后使用,而无需将其设置在该视图的控制器函数中?有没有办法在Rails的视图中存储变量?
ex。
<% bagel = @bagels.active_bagel %>
...
<%= bagel.delicious? %>
如上所述。有没有办法将变量存储在rails的视图中供以后使用,而无需将其设置在该视图的控制器函数中?有没有办法在Rails的视图中存储变量?
ex。
<% bagel = @bagels.active_bagel %>
...
<%= bagel.delicious? %>
如果你在相同的视图模板(而不是在另一个模板),那么确定 - 继续前进并设置变量,就像你的例子。我们一直这样做。
...但如果你去另一个模板使用这个变量...那么它应该设置在调用范围内,而不是一个魔术变量,在多个模板中使用,如果你明白我的意思: )
它可以做到这一点,但它不被认为是好的做法。如果你可以在控制器中做到这一点,那么你可能应该这样做。
就你而言......我认为你不应该在@bagels
变量上多次调用active_bagel
一个问题。
如果你正在尝试这样做,因为你认为它有可能会有一天缓慢....我建议等到它是实际上慢......然后找出如何优化速度然后。如果它是为了其他目的......那么告诉我们这是什么,我们会找出一个更好的方法。
这可以实现这个
#app/views/xyz/
#1. make a hidden html input field
<input type ="hidden" id = "you_id" value = "<%= yourvariable %>"
#if u want to access that variable in every view write your code in app/helper/application_helper
#otherwise write in the specific helper something this kind of code
def yourvariable
#your code
return somthing which you want in view
end
and from that html tag access the value
你是问有关在视图渲染两次相同的百吉饼或你想百吉跨请求是否仍然存在? – NateSHolland
@NateSHolland我想要将变量初始化并保存在每个请求中以便稍后在当前请求中使用,不需要持久化 – Riptyde4
后来会发生什么?更多意见?如果是这样的话......也许你应该在你的控制器中获取/存储这个变量,以传递给你将要使用的各种视图。 –