Ruby on rails 视图中显示的控制器中的循环方法的结果

Ruby on rails 视图中显示的控制器中的循环方法的结果,ruby-on-rails,ruby,loops,Ruby On Rails,Ruby,Loops,我有一个控制器TestController class TestController < ApplicationController def test_method for i in 1..5 do <anything> end end end 有人能告诉我这是为什么吗?谢谢 因为1..5中i的返回1..5 如果您想在1..5上执行某些操作,那么您应该将该方法设置为帮助器,在视图中执行1..5,或者执行与您正在寻找的视图层功能更密切相关

我有一个控制器
TestController

class TestController < ApplicationController

  def test_method
    for i in 1..5 do 
      <anything>
    end
  end
end

有人能告诉我这是为什么吗?谢谢

因为1..5中i的
返回
1..5

如果您想在
1..5
上执行某些操作,那么您应该将该方法设置为帮助器,在视图中执行
1..5
,或者执行与您正在寻找的视图层功能更密切相关的操作

IMO视图层操作不应回调首先呈现视图模板的控制器;这很违反直觉。最好的方法取决于你实际上在做什么


让我修正一下。我没有发现调用控制器本质上是错误的,我只是不认为调用的结果应该是对渲染本身做一些事情。获取一个值、进行计算等都不那么繁重,尽管我一般认为功能仍然属于其他地方


不过,我在这里可能是少数。

因为
对于1..5中的I
返回
1..5

如果您想在
1..5
上执行某些操作,那么您应该将该方法设置为帮助器,在视图中执行
1..5
,或者执行与您正在寻找的视图层功能更密切相关的操作

IMO视图层操作不应回调首先呈现视图模板的控制器;这很违反直觉。最好的方法取决于你实际上在做什么


让我修正一下。我没有发现调用控制器本质上是错误的,我只是不认为调用的结果应该是对渲染本身做一些事情。获取一个值、进行计算等都不那么繁重,尽管我一般认为功能仍然属于其他地方


不过,我在这里可能是少数。

因为您告诉ERB使用
打印表达式的结果

如果希望在不打印结果的情况下执行表达式,请去掉等号

<% my_expression %>

因为您告诉ERB使用
打印表达式的结果

如果希望在不打印结果的情况下执行表达式,请去掉等号

<% my_expression %>


+0.5明确提及我的暗示。但最后总结一下。明确提及我暗示的内容+0.5。但现在我们来总结一下。见下面的答案。值得思考的是:去掉括号,只需编写
控制器。测试方法
。括号不是必需的,事实上是误导性的,因为如果你把任何东西放进去,你会得到一个参数错误。这是ruby的一个特点,当你来自另一种语言时,一开始很奇怪,但你会习惯的。Ruby的一些功能和表现力在于,不存在属性和方法,点表示法中的一切都是方法调用。你越是感到舒适,你就越能好好利用它:)见下面的答案。值得思考的是:去掉括号,只需编写
控制器。测试方法
。括号不是必需的,事实上是误导性的,因为如果你把任何东西放进去,你会得到一个参数错误。这是ruby的一个特点,当你来自另一种语言时,一开始很奇怪,但你会习惯的。Ruby的一些功能和表现力在于,不存在属性和方法,点表示法中的一切都是方法调用。你越是感到舒适,你就越能好好利用它:)
<% my_expression %>