Rails中的ActiveAdmin如何使用action_item?

4
糟糕的文档说道:
action_item :view, only: :show do
  link_to 'View on site', post_path(post) if post.published?
end

但是它没有说明post_path(post)中的“post”是从哪里来的。 我猜在这个例子中,他们正在添加一个“view”自定义操作,该操作将执行save类中的view member_action,并且所有这些仅存在于show(详细资源显示)中。member_action方法需要资源的id(作为params [:id]传递)。首先,我认为文档中有一个错误,应该是view_post_path(...)。那么,这个未记录的“post”变量来自哪里呢?
另一个未记录的谜团在member_action示例中:
member_action :lock, method: :put do
  resource.lock!
  redirect_to resource_path, notice: "Locked!"
end

什么是“资源”?

另一个问题:

我如何覆盖现有的操作,比如编辑、删除等操作?

如果ActiveAdmin不是大约95%没有文档说明,它可能非常有用。

1个回答

2
你需要知道的是,ActiveAdmin 使用了其他的 gem,包括 Rails 和 Inherited Resources。如果你已经熟悉了 Rails(我不建议 Rails 初学者使用 AA),那么你可能会认识 post_path,它是一个自动生成的 URL 辅助工具,返回一个指向虚构的 post 模型的链接。这个开源项目你可以阅读GitHub 上关于 action item 的规范,其中注册了一个 Post 资源,这可能是 Sean 在他志愿撰写这篇文档时想到的。 resource 来自 Inherited Resources gem,在其 README 中你可以找到有关如何覆盖 edit、destroy 等操作的文档。
我认为行动项文档是合理的,尽管有点简略,而且你似乎已经理解了大部分内容。如果你认为文档有错误或者想要帮助改进它,欢迎你提出请求。此外,还有其他一些教程、示例应用和博客文章可以从维基链接到,可能会对你有所帮助。

1
感谢您的评论。 如果能提供正在使用的宝石参考,那么当我需要更多关于如何做某事的信息时,就知道在哪里搜索了。 无论如何,感谢这个强大的工具和出色的工作。 - Ziv Barber
没错。其他使用的宝石在ActiveAdmin README底部列在“依赖项”下。 - Piers C

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接