我有一个 activeadmin 资源,它具有 Belongs_to :user 关系。
当我在事件管理中创建模型的新实例时,我想将当前登录的用户关联为创建该实例的用户(我想这是相当标准的东西)。
所以......我让它工作:
controller do
def create
@item = Item.new(params[:item])
@item.user = current_curator
super
end
end
但是;)我只是想知道这是如何工作的?我只是希望为用户分配 @item 变量然后调用 super 能够工作(而且确实如此)。我也开始查看 gem,但看不出它实际上是如何工作的。
任何指示都会很棒。我假设这是 InheritedResources 为您提供的东西?
谢谢!
最佳答案
我遇到了类似的情况,我实际上并不需要完全重写 create 方法。我真的只想在保存之前注入(inject)属性,并且只在创建时注入(inject)属性;与你的例子非常相似。在阅读了 ActiveAdmin 源代码后,我确定可以使用 before_create
来完成我需要的操作:
ActiveAdmin.register Product do
before_create do |product|
product.creator = current_user
end
end
关于ruby-on-rails - rails : activeadmin overriding create action,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13675765/