运行rails generate controller Foo home
结果:
class FooController < Application Controller
def home
end
end
(There's nothing on this line in the actual file, just a blank line)
这个空行有目的吗?
运行rails generate controller Foo home
结果:
class FooController < Application Controller
def home
end
end
(There's nothing on this line in the actual file, just a blank line)
这个空行有目的吗?
通常使用换行符来表示行尾,即使是最后一行。许多编辑器(比如我使用的 vi)默默地添加这个换行符。共识是文本文件(尤其是在 Unix 世界中)应该以换行符结尾,如果它不存在,历史上就会出现问题。 为什么文本文件应该以换行符结尾?
我用来计算文件“wc”中行数的工具只计算文件中的换行符,所以如果没有尾随换行符,它将显示 3 而不是 4。
它还提高了生成器中使用的模板的可读性。考虑: https ://github.com/rails/rails/blob/master/railties/lib/rails/generators/rails/controller/templates/controller.rb
要删除尾随换行符,该模板将具有最后一行:
end<% end -%>
代替:
end
<% end -%>
这对我来说似乎不太可读。
这是一个疏忽,并在更高版本的 Rails 中得到了修复。
您可以在此处的提交历史记录中看到删除空行的位置:
这是它被删除的提交:
删除底部多余的空白行
它还向您展示了它存在的原因,以前他们只是在每个操作后添加一个空行。
将源代码保存在 git 等 SCM 中时,通常使用换行符结束文件。假设您在最后添加一些内容并提交更改。现在比较两种情况下的差异。
1)以换行符结尾:
--- foo_controller.rb 2013-04-18 09:14:48.000000000 +0800
+++ foo_controller2.rb 2013-04-18 09:15:10.000000000 +0800
@@ -1,4 +1,7 @@
class FooController < ApplicationController
def home
end
-end
\ No newline at end of file
+end
+
+p FooController.methods
\ No newline at end of file
2)没有换行符:
--- foo_controller.rb 2013-04-18 09:16:28.000000000 +0800
+++ foo_controller2.rb 2013-04-18 09:16:35.000000000 +0800
@@ -2,3 +2,5 @@
def home
end
end
+
+p FooController.methods
您会看到 diff 将“end”和“end\n”视为两条不同的行,这在第一种情况下会导致不太干净的视图。