有两个小白问题希望得到大家的指点:
1、ApplicationHelper 和 ApplicationController 的用法区别
我看两个地方都是用于放一些常用/复用代码的,譬如在 ApplicationHelper 中
module ApplicationHelper
# Returns the full title on a per-page basis.
def full_title(page_title)
base_title = "Ruby on Rails Tutorial Sample App"
if page_title.empty?
base_title
else
"#{base_title} | #{page_title}"
end
end
end
而 ApplicationController 中
def current_user
User.find(session[:user_id]) if session[:user_id]
end
为了这段代码能在 view 中使用,所以还要加一句helper_method :current_user
那我的理解是不是 ApplicationHelper 中放的是 view 中可复用的方法,而 ApplicationController 中的是 controller 中可复用的方法?
第二个问题是每次用 rails g controller 都会自动生成一个对应的 helper,但貌似一般都不怎么会用到它们,要么直接放 ApplicationHelper 或者 ApplicationController,如何 generate 能不生成多余的 helper 呢