ruby-on-rails - rails : activeadmin overriding create action

标签 ruby-on-rails activeadmin inherited-resources

我有一个 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/

相关文章:

javascript - 在 Rails 应用程序中改进不显眼的 javascript(并可能使用 CoffeeScript)

ruby-on-rails-3 - 活跃管理员 gem 模型协会。

ruby-on-rails - 继承资源和CanCan 3层嵌套

ruby-on-rails - 使用具有继承资源的演示者

ruby-on-rails - RSpec mock_model 和 inherited_resources

jquery - Rails 3.2 显示操作时的模态弹出窗口

ruby-on-rails - 如何在 Controller 中调用 rake 任务?

mysql - Rails ActiveRecord 删除记录,一次删除一条关联记录

ruby-on-rails - Rails Active Admin 如何使用 2 列(来自关联的 1 列)进行 config.sort_order

ruby-on-rails - Rails 3. 如何使用 ActiveAdmin 设置 Prawn?