Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用设计更新方法重写重定向到行为_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 使用设计更新方法重写重定向到行为

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) 当用户

我认为一个简单的问题是给我带来了一些麻烦。我有一个使用designe/Omniauth进行身份验证的应用程序。当一个新用户注册并登录时,我希望他们(连续)被引导到几个问题:

  • 他们喜欢喝什么饮料?(咖啡、饮料,两者都有)
  • 什么社区对他们方便
  • 我的用户模型有一个“preferred_beverage”属性和三个preferred_Neighbory_35;属性(preferred_Neighbory_1、preferred_Neighbory_2、preferred_Neighbory_3)

    当用户登录时,我想检查他们是否是新用户,如果是,请将他们引导到有问题1的页面:

    <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