Helper 是一些使用在 Rails 的 View 當中,用 Ruby 產生/整理 HTML code 的一些小方法。通常被放在 app/helpers
下。預設的 Helper 名字是對應 Controller 的,產生一個 Controller 時,通常會產生一個同名的 Helper。如 PostsController
與 PostsHelper
。
使用 Helper 的情境多半是:
使用 Helper 封裝程式碼可以帶給專案以下一些優點:
module BoardsHelper
# 回傳board的name,避免在view中做太多判斷
def render_board_name(board)
if board.present?
board.name
else
"unknown"
end
end
# 常常重複的區段也可以寫進 helper,統一管理
def render_board_name_path(board)
link_to(board.name, board_path(board))
end
end
在view中可以直接取用如下
<%= render_board_name_path(@board) %>