0

Rails 4.1 と Rails Admin を使用しています。次のフィールドを持つプロジェクト モデルがあります: name: slug: project_number。

管理者で新しいプロジェクトを作成するときに、id とスラッグを使用して 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

このようにして、新しいプロジェクトを作成すると(フォームはどこでも)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 に答える