0

Я пытаюсь добавить базовый номер документа в заголовке слизнякрубин на рельсах ID не появляется в моей модели

вот моя модель:

class Post < ActiveRecord::Base 
    before_save :title_to_slug 

    def title_to_slug 
    self.title_slug = "#{id}-" + "#{title}".to_slug 
    end 

end 

.to_slug происходит от https://github.com/ludo/to_slug

когда я сохраняю новое сообщение, в заголовке заголовка нет идентификатора вообще, вывод «-post-title»

+0

Вам действительно нужно дважды сохранить идентификатор? Почему бы не собрать слизню, когда вам нужно ее вывести? –

ответ

1

У вас не будет идентификатора, пока вы не сохраните его. Вы можете изменить свой крючок before_save на after_save и использовать update_attribute для установки title_slug.

Еще одна мысль. Оставьте идентификатор из сгустка и добавить его в свой добытчика:

def title_slug 
    "#{id}-#{read_attribute(:title_slug)}" 
end 
+0

спасибо, сегодня я узнал одну вещь ^^ – Camyz

0

отчеты не присваивается идентификатор, пока они не были сохранены в базе данных. Сначала вам нужно сохранить запись, а затем добавить заголовок заголовка после его сохранения с помощью обратного вызова after_save или after_create.

Смежные вопросы