【问题标题】:adding an after_create method in Rails Admin在 Rails Admin 中添加 after_create 方法
【发布时间】:2016-05-12 07:00:47
【问题描述】:

我正在使用 Rails 4.1 和 Rails Admin。我有一个包含以下字段的项目模型: 姓名: 蛞蝓: 项目编号。

当我在管理员中创建一个新项目时,我希望使用 id 和 slug 自动创建 project_number。像这样: self.project_number = self.slug + '_' + self.id

我试图在项目控制器中使用 after_create 方法执行此操作,但我现在意识到 rails_admin 没有击中我的控制器。 谁能指出我如何做到这一点的正确方向?这会是 rails_admin 自定义操作吗?

【问题讨论】:

    标签: ruby-on-rails-4 rails-admin after-create


    【解决方案1】:

    这是因为你需要在模型中抓取after_create

    /models/project.rb

    class Project < ActiveRecord::Base
    
      after_create :generate_project_number
    
    
      def generate_project_number
        self.project_number = "#{slug}_#{id}"
      end
    
    end
    

    这样当你创建一个新项目(formanywhere)时project_number会被保存为“slug_id”

    [29] pry(main)> Project.create!(slug: 'hello_world')
    => #<Project id: 3, slug: "hello_world", project_number: "hello_world_3", created_at: "2016-05-11 23:00:19", updated_at: "2016-05-11 23:00:19">
    

    【讨论】:

    • 非常感谢,这正是我需要的答案,它有效!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多