如何在对象创建期间在after_filter中获取对象id?

时间:2011-12-23 09:55:40

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 activeadmin

以下适用于update

after_filter :only => [:create, :update] do
    logger.info params[:id]
end

如何在create上引用ID?

5 个答案:

答案 0 :(得分:1)

试试这个:

after_filter :only => [:create, :update] do
    logger.info params[:id].nil? ? self.id : params[:id]
end

答案 1 :(得分:1)

after_filter :only => [:create, :update] do
 logger.info (resource && resource.id) || params[:id]
end

这对我有用。

答案 2 :(得分:0)

你做不到。没有params [:id],因为你没有任何id的记录,你只创建它。

答案 3 :(得分:0)

显然,对于创建案例,id不会在params中。

您必须(在更新和创建方法中)将created.updated记录存储在实例变量中,并在后过滤器中引用该实例变量。

答案 4 :(得分:0)

如果成功保存,你可以在创建动作中将params [:id]设置为对象的id。

然后它将存在于after_filter中。