Вопрос:контроллера перенаправлять различные пути в зависимости от предыдущей страницы
Как я хочу, чтобы перенаправить на другой путь после create
действий, учитывая, если previous_page является ../reader/new
идет в ../reader/blog/:id
, в то время как если previous_page это ../editor/new
идет в ../editor/blog/:id
.
Explaination:
Я хочу изменить действия контроллера таким образом, что он может перенаправить на другой путь, в зависимости на какой странице он приходит. Например, у меня есть модели reader
, editor
и blog
. Оба reader
и editor
могут создавать blog
.
Вот оригинал blogs_controller
:
class BlogsController < ApplicationsController
def create
@blog = Blog.new(blog_params)
respond_to do |format|
if @blog.save
format.html { redirect_to @blog }
else
format.html { render :new }
end
end
end
private
def blog_params
params.require(:service).permit(:title, :content)
end
end
спасибо, ваш первый и второй вариант делают трюк. Но я не могу понять последний вариант. Как передать param [: redirect_to]? Вы положили его внутри действия 'create' контроллера? –
Извините, я имел в виду 'params [: redirect_to [', позвольте мне объяснить дальше. Например, я предполагаю, что у вас есть форма в действии 'reader/new'. Затем вы можете добавить скрытое поле в эту форму и установить его символическое значение для требуемого перенаправления, например. 'hidden_field_tag: redirect_to," reader ". Затем этот параметр будет передан в действие create как 'params [: redirect_to]', и действие 'create' контроллера может отреагировать на этот параметр и перенаправить на нужную страницу считывателя. Я исправил опечатку в ответе. – BoraMa