在 Rails Admin 中添加 after_create 方法
adding an after_create method in Rails Admin
我正在使用 Rails 4.1 和 Rails 管理员。我有一个包含以下字段的项目模型:
姓名:
鼻涕虫:
project_number.
当我在管理员中创建一个新项目时,我希望 project_number 使用 id 和 slug 自动创建。像这样:
self.project_number = self.slug + '_' + self.id
我试图在项目控制器中使用 after_create 方法执行此操作,我现在意识到 rails_admin 没有影响我的控制器。
谁能指出我如何做到这一点的正确方向?这是 rails_admin 自定义操作吗?
这是因为您需要在模型中抓取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
这样当您创建一个新项目(在任何地方形成)时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">
我正在使用 Rails 4.1 和 Rails 管理员。我有一个包含以下字段的项目模型: 姓名: 鼻涕虫: project_number.
当我在管理员中创建一个新项目时,我希望 project_number 使用 id 和 slug 自动创建。像这样:
self.project_number = self.slug + '_' + self.id
我试图在项目控制器中使用 after_create 方法执行此操作,我现在意识到 rails_admin 没有影响我的控制器。 谁能指出我如何做到这一点的正确方向?这是 rails_admin 自定义操作吗?
这是因为您需要在模型中抓取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
这样当您创建一个新项目(在任何地方形成)时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">