belongs_to/has_many 關聯的下拉選單或巢狀列表。script/plugin install https://activescaffold.googlecode.com/svn/tags/active_scaffold
控制器改用 active_scaffold :model_name,並套用預設版面 layout "activescaffold"。
# 全域
AjaxScaffold.set_defaults do |conf|
conf.list.results_per_page = 20
end
# 區域 (UsersController)
active_scaffold :user do |conf|
conf.modules.exclude :update
conf.list.label = 'People'
conf.list.sorting = [{:last_name => :ASC}, {:first_name => :ASC}]
conf.list.columns.exclude :password_hash
end
to_label 方法自訂列表顯示文字(如 first_name + ' ' + last_name)。app/helpers/user_helper.rb 定義 欄位名_column(record) 格式化輸出(如日期格式)。password、password_confirmation)需自訂 _form_column 方法渲染為密碼框。關聯名_column 自訂連結邏輯。_form_column 使用靜態選單或 AJAX 自動完成。conf.actions.add :live_search。conf.live_search.columns = [:last_name, :first_name]。conf.live_search.full_text_search = false,避免 LIKE '%keyword%' 導致索引失效。新增 action_links 連結至自訂 Controller 方法,配合 Model 定義 csv_header、to_csv 實現泛用 CSV 匯出。
Object#as_ 掛鉤 Globalize 等本地化插件。stylesheet_include_tag "as_overrides"。動作_authorized? 方法,搭配 current_user_method。authorized_for_動作? 實現資料級權限(如僅專案擁有者可編輯)。ActiveScaffold 以動態反射與慣例優於配置,解決傳統 Scaffold 痛點,讓開發者專注於核心業務邏輯,是 Rails 後台管理介面的最佳加速器。