- <h1>Profile</h1>
- <p>
- Name:
- <%= @user.first_name %>
- <%= "#{@user.middle_initial}." unless @user.middle_initial.nil? %>
- <%= @user.last_name %>
- </p>
- <% link_to 'Users List', users_path %>
當別的頁面需要顯示用戶名時,我們又得將上述代碼copy一遍,敏感的開發人員可能已經聞到“風水”或bad smell了吧。
好,我們來重構:
- class User < ActiveRecord::Base
- def full_name
- name = first_name
- name += "#{middle_initial}." unless middle_initial.nil?
- name += last_name
- name
- end
- end
頁面就可以這樣寫了:
- <h1>Profile</h1>
- <p>
- Name:
- <%= @user.full_name %>
- </p>
- <% link_to 'Users List', users_path %>