Я бы хотел направить пользователей на страницу «Результаты», когда они нажмут кнопку «Отправить» из 8 вопросов с несколькими вариантами выбора, а также сохраняют свои ответы на база данных.Rails: Как направить на страницу результатов в форме 'submit'
В данный момент я использую 'form_for' и передаю current_user. При нажатии кнопки «Отправить» оно направляется на действие «Пользователь/показать». Я хотел бы перейти на страницу с подробными данными пользователя. Как мне это сделать?
Вот мой (очень грубый тест) форма с, до сих пор, один многовариантных вопрос (стиль от начальной загрузки):
<%= form_for([current_user]) do |f| %>
<p>
<%= text_field(:user, :name) %>
</p>
<div class="btn-group-vertical clearfix form-group" data-toggle="buttons">
<label class="btn btn-primary text-left">
<input name="options" id="option1" type="radio" onclick="multiChoiceClick(1, 1)">A. Always. I'm the leader and should have the final say
</label>
<label class="btn btn-primary text-left">
<input name="options" id="option2" type="radio">B. Sometimes, but I think the group should make decisions if possible
</label>
<label class="btn btn-primary text-left">
<input name="options" id="option3" type="radio">C. I generally don't get involved. The group can make their own decisions without my help
</label>
</div>
<p>
<%= f.submit("Get my results!") %>
</p>
<% end %>
Я в настоящее время в том числе text_field с именем пользователя только в качестве теста ,
Я хотел бы узнать, как «связать» первый вопрос с несколькими вариантами выбора для пользователя, но отобразить страницу результатов, когда нажата «получить мои результаты».
Возможно, у меня есть несколько ошибок в этом коде. Если да, и у вас есть ответ, не могли бы вы указать, что я ошибаюсь и объясню правильный способ сделать это? Извините, что я был настолько конкретным, но ранее у меня было несколько комментариев, которые ТОЛЬКО указывают на то, что не так, без альтернативы.
Спасибо.
Edit:
Кто-то спросил для контроллера, так вот она:
class HomeController < ApplicationController
def index
end
def whattypeofleader
@user = current_user
#@quiz_answer = current_user.quiz_answers(0).build
end
def post_params
params.require(:quiz_answer).permit(:body, :user_id)
end
end
Я имею @quiz_answer комментировал, потому что я не был уверен, как связать его с форма. В пользовательском контроллере Пользователь has_many: quiz_answers и QuizAnswer принадлежит_to: user
Спасибо за ваш ответ! Я добавил HomeController выше и некоторые подробности об отношениях User и QuizAnswer. Я думаю, что моя большая проблема заключается в том, что я не вижу, откуда эти помощники * _path. Где, или как, я бы сгенерировал путь results_path? – moosefetcher
Ваш 'home_controller' не должен управлять вашим пользователем. Если вы хотите управлять своими викторинами, продолжайте и создайте QuizzController. В методе 'new' вы можете получить своего пользователя и передать его вашему представлению (' @user = current_user'). У вас есть в 'view/quizzes/new.html.erb'' form_for @ user'. Rails form helper позаботится о передаче данных представления в ваш 'create'method в' QuizzController', и именно там вы будете управлять своими параметрами. Я поняла? Вы можете сказать нет! – Stan
Gah! Я думаю, что есть много, чтобы оценить сразу. Когда вы говорите «в новом методе», это «новый» метод контроллера QuizAnswer? И - в настоящее время форма является частичной, отображаемой как часть представления home/whattypeofleaderareyou.html.erb. Но вы говорите, что форма должна быть в викторинах/new.html.erb, правильно? Я расскажу, что происходит ... – moosefetcher