先说说接触到现在的理解
下面,有很多我感觉,深入理解后再补充
在models/xxx.rb中定义方法
1 2 3 4
| class Householder < ActiveRecord::Base def self.method end end
|
在helper/xxx.rb中定义方法
在app/helpers/ 文件夹下,包含application.rb 以及 与controller下文件同名的rb文件
我感觉:定义在application.rb 文件夹中的方法,在整个项目中的controller,views中都可以使用,但在文件的开头需要添加include ApplicationHelper
,
定义在与controller文件同名的rb文件中的,应用在相应的controller,view中使用时不需要include;
- 不难发现,在helper/ 文件夹下的文件中,都是些module,(这里还有个名词叫mixin)
1 2 3 4
| module ApplicationHelper def go_method end end
|
- 所以,这些方法在controller中引用时,需要
1 2 3 4 5 6 7
| class HouseholderController < ApplicationController include ApplicationHelper
def householders_method go_method end end
|
- 在view 中引用时,引用与该controller 文件名相同的 helper文件时,是不需要include的,但是,如果提示没有方法,或者引用的是application.rb中的方法,就酱紫
1
| <% include ApplicationHelper %>
|
在libs/下面定义方法
- 首先,定义在这里的方法,需要在config/application.rb 文件中应用一下
1
| config.autoload_paths << Rails.root.join('lib')
|
可以定义class
1 2 3 4
| class Person def self.go_method end end
|
1 2 3 4 5
| # rb 文件中调用 Person.go_method
# erb 文件中调用 <% Person.go_method %>
|
也可以定义module
1 2 3 4
| module Person def go_method end end
|
1
| 在rb文件中可以直接调用,需要include一下
|