繁体   English   中英

在Rails中,将助手分为美观的不同文件吗?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM