#ruby-on-rails #ruby-on-rails-4
#ruby-on-rails #ruby-on-rails-4
Вопрос:
Я пытаюсь заставить пользователя следовать определенному пути при регистрации (регистрация, страница анкеты, панель мониторинга), но я сталкиваюсь с проблемами, пытаясь заставить страницу анкеты заниматься своими делами.
Соответствующие биты контроллера:
def update
@user = current_user
if @user.save
redirect_to :back
flash[:notice] = "Updated!"
else
redirect_to :back
flash[:notice] = "Couldn't save your info"
end
end
def questionnaire
@user = current_user
if @user.update_attributes(params[:user]) # just informed this bit of code won't do anything
redirect_to user_dashboard_path
flash[:notice] = "Thanks for filling out the questionnaire."
else
redirect_to user_introduction_path
flash[:notice] = "Couldn't save."
end
end
Вот представление, которое я использую на странице анкеты:
=simple_form_for @user, :url => {:action => "about_yourself"} do |f|
%p What's your name?
=f.input :name, label: "Your name, please."
%p Gender?
=simple_fields_for :personal_detail do |p|
= p.input :gender, :collection => %w[Male Female]
%p Age?
=f.input :age
=f.submit "Let's rock"
Как мне перенаправить форму на определенную страницу, когда форма в определенном представлении обновляет модель? В основном используйте метод обновления с другой страницы с другим перенаправлением, если мне нужно.
Комментарии:
1. просто мысль, но просто для ясности, когда вы отправляете форму для обновления пользователя, она переходит к
update
действию. на самом деле вы ничего не добиваетесь с помощью действияif @user.update_attributes(params[:user])
in yourquestionnaire
.2. Ну, я думаю, что это моя проблема… Я перефразирую свой вопрос, спасибо!
3. Я думаю, вы можете добавить скрытый ввод в каждом конкретном представлении и заставить эти представления обновляться на одном контроллере, а затем создать условие для скрытого значения для обработки цели перенаправления.