在rails Active Admin中,如何传递值来预填写新模型表单

问题描述 投票:0回答:2

假设我有一列远程员工,每个员工都可以是家庭员工或远程员工。

在远程员工索引页面中,我可以单击“创建家庭员工”,它将带我进入新的家庭员工创建页面。

以下内容为我构建了一个链接,将我带到创建家庭工作人员页面..

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

假设所有远程工作人员也有全名,家庭工作人员也有全名 如何预先填写“创建家庭工作者全名”栏?

ruby-on-rails activeadmin
2个回答
0
投票

我找到了一种方法...... 我只需要将以下内容放入新的家庭工作者 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 }

0
投票

稍微改进的通用版本,仅为新记录设置(覆盖)值:

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
© www.soinside.com 2019 - 2024. All rights reserved.