Helper
What
ActionController::Helpers
Basically helpers in Rails are used to extract complex logic out of the view so that you can organize your code better.
Advantages
Extract some complexity out of the view
Make view logic easier to test
Move complexity out of the view
把一些復雜的邏輯從view層中抽出來,放在controller里面:
<% if @user && @user.email.present? %>
<%= @user.email %>
<% end %>
完全可以在controller里面這樣:
#site_helper.rb
module SiteHelper
def user_email(user)
user.email if user && user.email.present?
end
end
#user_controller.rb
class UserController
helper SiteHelper
end
有一個method很近似,那就是helper_method
下面來看他們兩的區別
helper vs helper_method
helper_method可以把controller中的method share給view
helper則是把整個Hepler 引入到view中,相當于:
``
include_all_helpers
``