我有一个控制器TestController
class TestController < ApplicationController
def test_method
for i in 1..5 do
<anything>
end
end
end
我对那个控制器有一个看法
[...]
<%= controller.test_method() %>
[...]
当我打电话给我的观点时
1..5
谁能告诉我这是为什么?谢谢!!
我有一个控制器TestController
class TestController < ApplicationController
def test_method
for i in 1..5 do
<anything>
end
end
end
我对那个控制器有一个看法
[...]
<%= controller.test_method() %>
[...]
当我打电话给我的观点时
1..5
谁能告诉我这是为什么?谢谢!!
因为for i in 1..5
回报1..5
.
如果您想对此做一些事情,1..5
那么您应该使该方法成为助手,1..5
在视图中执行,或者与您正在寻找的视图层功能更密切相关的事情。
IMO 视图层操作不应该回调到首先呈现视图模板的控制器;这很违反直觉。最好的方法取决于你实际在做什么。
让我修改一下。我没有发现回调控制器本质上是错误的,我只是认为该调用的结果不应该对渲染本身进行处理。获取一个值、进行计算等不那么繁重,尽管我通常认为功能仍然属于其他地方。
不过,我可能在这里是少数。
因为您告诉 ERB 打印表达式的结果,所以使用<%= ... %>
.
如果您希望在不打印结果的情况下执行表达式,请不要使用等号。
<% my_expression %>