У меня есть базовая настройка блога в одном из моих приложений.У каждого blog
есть логическое значение для published
, а затем дата для published_on
.published_on
равен nil
, пока не обновится с published
как true
.Логика контроллера выглядит следующим образом:
def create
@blog = Blog.new(blog_params)
@blog.user_id = current_user.id
if @blog.published
@blog.published_on = Time.now
end
respond_to do |format|
if @blog.save
format.html { redirect_to @blog, notice: 'Blog was successfully created.' }
format.json { render :show, status: :created, location: @blog }
else
format.html { render :new }
format.json { render json: @blog.errors, status: :unprocessable_entity }
end
end
end
И для обновления ...
def update
if @blog.published && @blog.published_on.nil?
@blog.published_on = Time.now
end
...
end
Однако функция обновления не обновляется, и я получаю ошибку undefined method 'strftime' for nil:NilClass
, гдеон должен отображаться на странице show
.Когда я rails c
это published_on
не сохранил.
Что я должен поставить вместо логики Time.now
, которую я сейчас использую в контроллере.Он отлично работает с blog#create
, но что-то не так в blog#update
.