2016-05-11 4 views
0

Я использую Rails 4.1 и Rails Admin. У меня есть модель проекта со следующими полями: имя: slug: project_number.Добавление метода after_create в Rails Admin

Когда я создаю новый проект в администраторе, я хочу, чтобы имя_проекта создавалось автоматически с использованием идентификатора и пули. Пример: self.project_number = self.slug + '_' + self.id

Я пытался сделать это в контроллере проекта, используя метод after_create, теперь я понимаю, что rails_admin не ударяет моего контроллера. Может ли кто-нибудь указать мне в правильном направлении, как это сделать? Будет ли это обычным действием rails_admin?

ответ

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"> 
+1

Спасибо так много, что был ответ, который мне нужен, он работает! – DeweyBanks