[英]In Rails is dividing helpers into different files just aesthetic?
我正在研究Michael Hartl的Rails教程,第8章,其中在helpers / sessions_helper.rb中定义了sign_in方法。 令我惊讶的是,由于用户具有自己的帮助程序users_helper.rb,因此可以在users控制器中调用此方法。 任何控制器都可以在任何帮助程序文件中调用任何方法,如果需要,在不同的帮助程序文件中不要使用相同的方法名称是否很重要?
我相信不同文件中的助手主要是美观的,但是,如果您希望在特定控制器中使用特定助手,则可以使用其自己的名称来调用它:
class MyController < ApplicationController
include MyHelper
end
考虑到这一点,它为您提供了一些模块性,使您的助手呼叫更加高效。 但是,在宏伟计划中,每次您的应用渲染视图等时都会调用大多数助手
class MyController < ApplicationController
include MyHelper
end
所有控制器都是类。 所有助手都是模块。
您必须需要该文件,并将模块包括在类中才能访问帮助器中定义的方法。
Rails:默认情况下,相应视图中包括Helper文件。 因此, users_helper.rb
中定义的方法可直接在views/users
中的文件中views/users
。
MHartl的教程: SessionsHelper
包含在class ApplicationController
。 UsersController
(就此而言,任何控制器)都从ApplicationController
继承。 因此, ApplicationController
中包含的模块基本上可在任何控制器中使用。
因此在不同的帮助文件中不要使用相同的方法名称是否重要?
是你的愿望 请记住,稍后加载的方法将覆盖具有相同名称的先前方法。 例如。
两个模块描述了方法def can_do
。 我include Module1
,后来include Module2
此后调用can_do
任何代码实际上将调用Module2#can_do
而不是Module1#can_do
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.