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