假设我有一列远程员工,每个员工都可以是家庭员工或远程员工。
在远程员工索引页面中,我可以单击“创建家庭员工”,它将带我进入新的家庭员工创建页面。
以下内容为我构建了一个链接,将我带到创建家庭工作人员页面..
column :home_worker do |remote_staff|
if remote_staff.home_worker
link_to("Home worker ##{remote_staff.home_worker.id}", admin_home_worker_path(remote_staff.home_worker), method: :get)
else
link_to('Create Home Worker', redirect_to_home_worker_create_admin_remote_staff_path(remote_staff), method: :get)
end
end
假设所有远程工作人员也有全名,家庭工作人员也有全名 如何预先填写“创建家庭工作者全名”栏?
我找到了一种方法...... 我只需要将以下内容放入新的家庭工作者 f.inputs 中,然后将该值作为 full_name 传递
remote_staff_full_name = RemoteStaff.find(params['home_worker']["remote_staff_id"]).full_name unless params['home_worker'].nil?
f.input :full_name, label: "Full name", :input_html => { :value => remote_staff_full_name }
稍微改进的通用版本,仅为新记录设置(覆盖)值:
form do |f|
f.inputs do
attr_name = :barcode
attr_value = resource.new_record? ? params[attr_name] : resource.send(attr_name)
f.input(attr_name, input_html: { value: attr_value })
end
end