0

我正在使用 Rails 4.1 和 Rails Admin。我有一个包含以下字段的项目模型:名称:slug:project_number。

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

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

4

1 回答 1

0

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">
于 2016-05-11T22:55:30.680 回答