Rails:activeadmin重写创build操作

我有一个active_admin资源,它有一个belongs_to:用户关系。

当我在活动pipe理员中创build模型的新实例时,我想将当前login的用户作为创build实例的用户(非常标准的东西,我想象)。

所以…我得到了它的工作:

controller do def create @item = Item.new(params[:item]) @item.user = current_curator super end end 

然而;)我只是想知道这是如何工作? 我只是希望分配@itemvariables的用户,然后调用超级将工作(和它)。 我也开始浏览gem,但看不到它是如何工作的。

任何指针都会很棒。 我假设这是inheritance资源给你的东西?

谢谢!

我遇到了类似的情况,我并不需要完全重写create方法。 我真的只想保存之前注入属性,只有在创build; 非常类似于你的例子。 读完ActiveAdmin源代码之后,我确定可以使用before_create来完成我所需要的操作:

 ActiveAdmin.register Product do before_create do |product| product.creator = current_user end end 

另外一个select:

 def create params[:item].merge!({ user_id: current_curator.id }) create! end 

你是正确的活动pipe理使用InheritedResources ,所有其他工具,你可以看到在页面的末尾。

根据AA 源代码,这为我工作:

 controller do def call_before_create(offer) end end