在自定义按钮单击上切换表单上的字段显示/隐藏

时间:2016-07-21 01:53:44

标签: ruby-on-rails activeadmin

我试图实现一个自定义按钮,当单击该按钮时,切换表单上两个字段的可见性(密码和password_confirmation将被隐藏/显示)。

我可以在表单上显示一个操作项按钮,但是当单击它时会显示以下错误消息:

  

缺少模板admin / users / toggle_password,   active_admin /资源/ toggle_password,   active_admin /碱/ toggle_password,   inherited_resources / base / toggle_password,application / toggle_password   with {:locale => [:en],:formats => [:html],:variants => [],   :handlers => [:erb,:builder,:raw,:ruby,:coffee,:arb]}。

我的管理员档案:

ActiveAdmin.register User do
  menu parent: 'User Management'

  permit_params :email, :password, :password_confirmation

  index do
    selectable_column
    id_column
    column :email
    column :created_at
    actions
  end

  form do |f|
    f.inputs "Details" do
      f.input :email
      f.input :password
      f.input :password_confirmation
    end
    f.actions

  end

  action_item :toggle_password, only: %i( show edit ) do
    # Link to perform the member_action "toggle_password" defined below
    link_to 'Toggle Password', action: :toggle_password
  end

  member_action :toggle_password do
    # show/hide password field
  end

end

我如何链接按钮点击事件以调用我自己的功能?

1 个答案:

答案 0 :(得分:0)

根据您的代码,点击链接Toggle Password即表示您正在调用操作toggle_password。 Rails会尝试为相同的模板找到相应的模板。

您可以使用javascript切换字段。 在链接中添加id

action_item :toggle_password, only: %i( show edit ) do
  # Link to perform the member_action "toggle_password" defined below
  link_to 'Toggle Password', id: 'link', action: :toggle_password
end

在javascript中,你可以写

$('#link').click(function() {
  $(<#id of password & password confirmation field>).toggle();
});