在我的应用程序的管理界面中,我使用ActiveScaffold进行简单的记录编辑:
class Admin::InspectionsController < ApplicationController
require_role :staff
protect_from_forgery :only => [:create, :update, :destroy]
active_scaffold :inspections do |config|
[:create, :delete].each {|a| config.actions.exclude a}
config.actions.exclude :nested
config.update.columns = [ :name, :activity_status, :inspector, :report, :note, :time_window, :inspection_type ]
end
end
在这种情况下,:activity_status
和:inspector
是关联列,指的是关联对象。在我的脚手架中,我希望编辑器能够更改外键指向的对象,但上面的配置显示:
我只希望更新检查员本身,而不是其字段!
将列更改为:inspector_id
只允许直接编辑ID本身。
我做错了什么?
答案 0 :(得分:1)
我使用的解决方法是从相关控制器上的子窗体操作中删除所有列:
class Admin::UsersController < ApplicationController
active_scaffold :users do |config|
#...
config.subform.columns = []
#...
end
end
我不知道是否有更好,更优雅的方式......
对检查控制器中的列使用form_ui
方法:
[:activity_status, :inspector].each do |c|
config.columns[c].form_ui = :select
end