Ruby on rails 使用设计更新方法重写重定向到行为
我认为一个简单的问题是给我带来了一些麻烦。我有一个使用designe/Omniauth进行身份验证的应用程序。当一个新用户注册并登录时,我希望他们(连续)被引导到几个问题:Ruby on rails 使用设计更新方法重写重定向到行为,ruby-on-rails,ruby,Ruby On Rails,Ruby,我认为一个简单的问题是给我带来了一些麻烦。我有一个使用designe/Omniauth进行身份验证的应用程序。当一个新用户注册并登录时,我希望他们(连续)被引导到几个问题: 他们喜欢喝什么饮料?(咖啡、饮料,两者都有) 什么社区对他们方便 我的用户模型有一个“preferred_beverage”属性和三个preferred_Neighbory_35;属性(preferred_Neighbory_1、preferred_Neighbory_2、preferred_Neighbory_3) 当用户
<div class="center hero-unit">
<h2>What do you like to drink?</h2>
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :method => :put }) do |f| %>
<%= f.radio_button :preferred_beverage, 'Coffee', :checked => true %>
<%= label :preferred_beverage, 'Coffee' %>
<%= f.radio_button :preferred_beverage, 'Drink' %>
<%= label :preferred_beverage, 'Drink' %>
<%= f.radio_button :preferred_beverage, 'Both' %>
<%= label :preferred_beverage, 'Both' %>
<%= f.submit "Next", class: "btn btn-large btn-primary" %>
<% end %>
</div>
欢迎您的任何意见!
谢谢。您不应该覆盖设计更新操作,您需要覆盖
after_sign_in_path_for
设计路线。用户登录后,您可以将其重定向到任何您喜欢的位置。您应该将其放在应用程序控制器中
谢谢你,凯尔。但重要的不仅仅是登录后的那一刻。这是在重定向到填写饮料的表单之后。提交饮料后,用户将被更新,并且应该有另一个重定向到显示第二个问题(邻居)的页面。有什么想法吗?谢谢我会把这些问题单独列成一张表,这样你们就不用担心Desive了。在更新操作中添加super时发生了什么?
routes.rb
devise_for :users, path_names: {sign_in: "login", sign_out: "logout"},
controllers: {omniauth_callbacks: "omniauth_callbacks", :registrations => "registrations"}
after_sign_in_path_for