向activeadmin列添加一个按钮,用于更新资源属性

时间:2014-11-10 16:00:52

标签: ruby-on-rails ruby activeadmin

我在activeadmin中有一个索引。类似的东西:

index do
 selectable_column
 column "Date"
 column "Type"
 ..
 column "mark"
end

我要求最后一列有一个按钮,单击该按钮将更新资源的属性。有些事链接

 column "mark" do |resource|
   # a button 
   # on click: resource.update_attributes :marked => True
 end

由于

1 个答案:

答案 0 :(得分:3)

如果该资源提供表单以执行更新,则使用link_to方法 可以构建远程请求以在点击时更新各种属性:

index do
  column "Mark" do |resource|
    link_to("Mark",
      admin_resource_path(resource, resource: { marked: true }),
      remote: true, method: :patch
    )
  end
end

关键部分remote: true可以发出远程请求method: patch 发布资源更新。

请注意,必须更新对admin_resource_pathresource的引用 用于实际使用的资源。 Post资源的示例:

index do
  column "Actions" do |post|
    link_to("Touch",
      admin_post_path(post, post: { updated_at: Time.now }),
      remote: true, method: :patch
    )
  end
end